The problem is fixed. When running a flash image with an initrd doing a mount
from within the linuxrc program (init) behaves much differently that spawning a
process and calling /bin/mount.
I'm going to put some tools in place to try and figure it out. A specific
behavior is that C mount mounts the system, let's you look at it, but you can't
do
a /bin/umount to it. It doesn't show up in the mtab and as far as I know,
there
isn't any way to unmount it at that point.
Steve Lord wrote:
> > I have been seeing kernel BUGs in ll_rw_blk. To my /dev/hda8, requests out
> > of range, or so it would appear.
> >
> > Well it's an embedded platform and we've been slowly turning off items.
> > Here
> > is my new theory.
>
> Ah ha, a minor detail emerges!
>
> >
> > If the drive is blank then I have a flash the detects that and rebuilds it
> > in said flash I do mkfs.xfs and then I do a C library call mount()
> > That mount behaves different from /bin/mount. I'm guessing that's my
> > problem. I'm doing mkfs and then it's not syncing or some such garbage.
>
> The xfs metadata cache and the buffer cache used by block devices are
> not coherent. There is an ioctl at the end of mkfs which is supposed to
> ensure that all buffers for the device are flushed out to disk before
> it returns. This ioctl: BLKFLSBUF must work, possibly this is an issue
> for you.
>
> >
> > I'm going to retool my flash and try again. I've taken the problematic
> > partitions and on the running system I've unmounted them and rebuilt them
> > and
> > everything is cool again..
> >
> > Ian
> >
>
> Steve
|