Re: locking in sync_old_buffers

From: Andrew Morton (akpm@zip.com.au)
Date: Mon Apr 22 2002 - 17:08:14 EST


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/



This archive was generated by hypermail 2b29 : Tue Apr 23 2002 - 22:00:33 EST