Thread (10 messages) 10 messages, 4 authors, 2012-09-03

Re: [PATCH] ext4: Use s_csum_seed instead of i_csum_seed for xattr block csum.

From: Theodore Ts'o <tytso@mit.edu>
Date: 2012-06-26 02:23:10

On Sun, Jun 24, 2012 at 10:13:56PM +0800, Tao Ma wrote:
From: Tao Ma <redacted>

In xattr block operation, we use h_refcount to indicate whether the
xattr block is shared among many inodes. And xattr block csum uses
s_csum_seed if it is shared and i_csum_seed if it belongs to
one inode. But this has a problem. So consider the block is shared
first bewteen inode A and B, and B has some xattr update and CoW
the xattr block. When it updates the *old* xattr block(because
of the h_refcount change) and calls ext4_xattr_release_block, we
has no idea that inode A is the real owner of the *old* xattr
block and we can't use the i_csum_seed of inode A either in xattr
block csum calculation. And I don't think we have an easy way to
find inode A.

So this patch just removes the tricky i_csum_seed and we now uses
s_csum_seed every time for the xattr block csum. The corresponding
patch for the e2fsprogs will be sent in another patch.
This makes sense to me; it's an on-disk format change, but we haven't
released the e2fsprogs patches in anything other than the proposed
updates branch of the e2fsprogs repo, so it seems reasonable to make
this change as there's really no other way to fix this.

Darrick, any objections to this change?

						- Ted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help