Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Nov 1996 15:44:38 -0800
From:      Julian Elischer <julian@whistle.com>
To:        Terry Lambert <terry@lambert.org>
Cc:        hackers@FreeBSD.org
Subject:   Re: [Fwd: Device filesystem stumbling block]
Message-ID:  <3290F4E6.41C67EA6@whistle.com>
References:  <199611182131.OAA07701@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> 
> > the vnode in question is:
> > $13 = {
> >   v_flag = 8192,
> >   v_usecount = 2,
> >   v_writecount = 0,
> >   v_holdcnt = 3,
> >   v_lastr = 0,
> >   v_id = 1568,
> >   v_mount = 0xf0b34800,
>               **********                0xf0b34800
> >   v_op = 0xf09c0a00,
> >   v_freelist = {
> >     tqe_next = 0xf0ae1800,
> >     tqe_prev = 0xdeadb
>                  *******       This is suspicious, but should not be fatal
> >   },
> >   v_mntvnodes = {
> >     le_next = 0xf0ae1900,
> >     le_prev = 0xf0b34814
>                 **********              0xf0b34814
> 
> Last time I looked, sizeof(struct vnode) is larger than what you have
> here:
> 
>         0xf0b34814 - 0xf0b34800 = 0x14 = 20 bytes
> 
> I would say your v_mntvnodes is corrupt, or this particular vnode is
> corrupt.  Again, if it's the le_prev that's blown, then this should
> not be fatal.

I don't think this is it, in fact I think that this may just be 
some invalid fields or something..
it doesn't seem to be related...

> 
> > and the buf in question is the buf holding the superblock for the
> > filesystem. It is marked BUSY, but nothing is dealing with it so
> > getblk waits forever. for the life of me I can't figure out
> > what I need to add to devfs to make that block be handled.
> 
> Try adding the FORCECLOSE flag to the ffs_flushfiles() call in
> ffs_unmount() in /sys/ufs/ffs/ffs_vfsops.c.
> 
>                 flags |= FORCECLOSE;
>         if (error = ffs_flushfiles(mp, flags, p))
> 
> If it "fixes" it, then it should be possible to get a better fix.
maybe....
but I think it's because of cunfusion about which filesystem is suposed
to handle the work.

> 
> > I don't understand what is supposed to find it and do the write back
> > that it is apparently waiting for.
> > I've looked in the 4.4 book but unfortunatly it doesn't seem to cover
> > this anywhere I can see. Certainly it lacks a clear diagram of
> > the linking in of filesystem meta-data in the buffer system.
> > I don't know  where this buffer is hung off.
> > I guess I'm going to be single stepping through 'mount'
> > tomorrow to try figure this out, but any hints in the meanwhile
> > would be gratefully accepted..
> 
> One question occurs to me: is this the / FS?  If it is, then it will
> never unbusy, since the devfs is mounted on it... right?
no,
these are literally from the example I gave...

mount -t devfs devfs /mnt
mount /mnt/wd0e /data/mnt
unmount /data/mnt

> 
>                                         Terry Lambert
>                                         terry@lambert.org
> ---
> Any opinions in this posting are my own and not those of my present
> or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3290F4E6.41C67EA6>