[linux-lvm] Question about VFS Locking patch, why is a change needed?

Chris Mason mason at suse.com
Mon Apr 21 08:07:01 UTC 2003


On Thu, 2003-04-17 at 20:43, Steven Dake wrote:
> Folks,
> 
> I was analyzing the VFS locking patch and I wanted to know if someone 
> could explain the purpose of a change in the reiserfs for me:
> 
> The change is:
> Index: linus.21/fs/reiserfs/super.c
> --- linus.21/fs/reiserfs/super.c Fri, 11 Jan 2002 10:14:59 -0500 root 
> (linux/41_super.c 1.2.2.1.2.1.1.1 644)
> +++ linus.21(w)/fs/reiserfs/super.c Mon, 28 Jan 2002 13:50:56 -0500 root 
> (linux/41_super.c 1.2.2.1.2.1.1.1 644)
> @@ -66,7 +66,7 @@
>      reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1);
>      journal_mark_dirty(&th, s, SB_BUFFER_WITH_SB (s));
>      reiserfs_block_writes(&th) ;
> -    journal_end(&th, s, 1) ;
> +    journal_end_sync(&th, s, 1) ;
>    }
>    s->s_dirt = dirty;
>    unlock_kernel() ;
> 
> I tried LVM with and without this change even under heavy load and LVM 
> can still create mountable snapshots of a reiser filesystem without the 
> change.  Why is it there?

journal_end will do an asynchronous commit, which means it won't wait
for the journal to actually finish writing to disk.  journal_end_sync
will wait until the commit is fully on disk.

In most cases, the reiserfs_block_writes call is sufficient and the
journal_end_sync change isn't needed, but there are a few corner cases
depending on the number of log writers where journal_end_sync is
required.

-chris






More information about the linux-lvm mailing list