Re: locking in sync_old_buffers

Andrew Morton (akpm@zip.com.au)
Mon, 22 Apr 2002 15:08:14 -0700


Dave Hansen wrote:
> ...
> --- linux-2.5.8-clean/fs/buffer.c Mon Apr 22 13:45:34 2002
> +++ linux/fs/buffer.c Mon Apr 22 13:45:49 2002
> @@ -2612,10 +2612,8 @@
>
> static void sync_old_buffers(unsigned long dummy)
> {
> - lock_kernel();
> sync_unlocked_inodes();
> sync_supers();
> - unlock_kernel();
>
> for (;;) {
> struct buffer_head *bh;

Al would know better than I, but...

If you're going to do this, then the BKL should be acquired
in fs/super.c:write_super(), so the per-fs ->write_super
functions do not see changed external locking rules.

Possibly, fs/inode.c:write_inode() needs the same treatment.
But Doc/filesystems/Locking says that lock_kernel() is not
held across ->write_inode so there should be no need to take
it on the kupdate path.

That's for 2.4. For 2.5, we'd like sync_old_buffers to just
go away. Do you have time to test
http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.8/everything.patch.gz

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/