Date: Mon, 18 Nov 1996 14:31:39 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: julian@whistle.com (Julian Elischer) Cc: hackers@FreeBSD.org Subject: Re: [Fwd: Device filesystem stumbling block] Message-ID: <199611182131.OAA07701@phaeton.artisoft.com> In-Reply-To: <3290B7AB.41C67EA6@whistle.com> from "Julian Elischer" at Nov 18, 96 11:23:23 am
next in thread | previous in thread | raw e-mail | index | archive | help
> 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.
> 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.
> 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?
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?199611182131.OAA07701>
