Date: Tue, 2 Sep 2003 20:42:39 +1000 From: Tim Robbins <tjr@FreeBSD.ORG> To: Bruce Evans <bde@zeta.org.au> Cc: freebsd-current@freebsd.org Subject: Re: Syncer "giving up" on buffers Message-ID: <20030902104239.GA98936@dilbert.robbins.dropbear.id.au> In-Reply-To: <20030902040856.U5166@gamplex.bde.org> References: <20030901165348.GA542@bsd> <20030902040856.U5166@gamplex.bde.org>
index | next in thread | previous in thread | raw e-mail
On Tue, Sep 02, 2003 at 05:10:48AM +1000, Bruce Evans wrote: > Apparently the bug fixed in ext2fs/fs.h revs 1.3, 1.4 and 1.6 (etc.) > was restored in rev.1.14. I think this is because B_LOCKED buffers > were ignored in the sync() in boot() and flushed later when > vfs_unmountall() calls ext2fs_unmount(), but they are now seen in the > sync() so vfs_unmountall() is not called. > > Rev.1.3 of ext2fs/fs.h (etc.) abuses B_LOCKED to do little more than > make the sync() ignore ext2fs's private buffers (its complications are > mainly to handle the resulting B_LOCKED buffers). It wants to brelse() > the buffers so that their BUF_REFCOUNT() is 0 and the sync() in boot() > is happy to handle them. In the original fix, I think the buffers > could be B_DELWRI and then the sync() would fulush them, but setting > B_DELWRI was wrong and was changed (in rev.1.4) to setting the private > flag B_DIRTY instead. Rev.1.13 esssentially removes the brelse() and > adds a new complication (BUF_KERNPROC()) and keeps the old ones. I > think the BUF_KERNPROC() is less than useful -- without the brelse()'s, > the buffers are completely private to the file system. Is there any particular reason why ext2fs keeps these buffers locked instead of reading/writing them in when it needs to, or storing them in malloc'd memory and reading/writing them at mount/unmount time? Do we need to ensure that group descriptors & inode/block bitmaps are not written to disk until the filesystem gets unmounted, or is it merely to improve performance and simplify the code? Timhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030902104239.GA98936>
