[Ocfs2-devel] [PATCH 0/18] ocfs2: Add metadata ECC - almost there.
Tao Ma
tao.ma at oracle.com
Wed Dec 10 18:46:33 PST 2008
Joel Becker wrote:
> These patches add the metadata ECC code to ocfs2. They have one
> limitation - they do not ECC directory blocks yet. However, that will
> only take a simple insertion of the dirblock trailer. With xattr ECC
> completed, the patches are approaching a final form and are ready for
> initial review. They are atop my xattr-buckets-2 branch.
>
> The first patch adds buffer triggers to JDB2. This allows us to only
> calculate the ECC code when JBD2 is about to write a block to disk.
>
> Next, we add the actual blockcheck functions. These are the functions
> that compute the checksum (using the kernel's crc32_le()) and the ECC
> bits (this is hamming code, implemented in blockcheck.c).
>
> Then we create metadata-type specific ocfs2_journal_access_*() functions
> to make sure each metadata type uses its own checksum field. These are
> hooked up to the regular metadata types.
>
> We add ecc calculation to xattr buckets. Because buckets can be
> multiple blocks, they cannot use journal triggers. However, they are
> rarely updated, so the loss of efficiency isn't very important.
>
> Last, we refactor the xattr value setting code to make sure we know
> which metadata type an xattr value belongs to. That way we can call the
> appropriate ocfs2_journal_access_*() function.
>
> The code is also available in my repository.
>
> [View]
> http://oss.oracle.com/git/?p=jlbec/linux-2.6.git;a=shortlog;h=metaecc
> [Pull]
> git://oss.oracle.com/git/jlbec/linux-2.6.git metaecc
>
> Joel Becker (18):
> jbd2: Add buffer triggers
> ocfs2: Add the on-disk structures for metadata checksums.
> ocfs2: Add the underlying blockcheck code.
> ocfs2: Add a validation hook for quota block reads.
> ocfs2: block read meta ecc.
> ocfs2: Add journal_access functions with jbd2 triggers.
> ocfs2: Wrap up the common use cases of ocfs2_new_path().
> ocfs2: Use metadata-specific ocfs2_journal_access_*() functions.
> ocfs2: Add ecc and checksums to ocfs2 xattr buckets.
> ocfs2: Create ocfs2_xattr_value_buf.
> ocfs2: Pull ocfs2_xattr_value_buf up from __ocfs2_remove_xattr_range().
> ocfs2: Pull ocfs2_xattr_value_buf up into ocfs2_xattr_value_truncate().
> ocfs2: Pass ocfs2_xattr_value_buf into ocfs2_xattr_value_truncate().
> ocfs2: Pass value buf to ocfs2_xattr_update_entry().
> ocfs2: Use ocfs2_xattr_value_buf in ocfs2_xattr_set_entry().
> ocfs2: Pass value buf to ocfs2_remove_value_outside().
> ocfs2: Use proper journal_access function in xattr.c
> ocfs2: Enable metadata checksums.
Acked-by: Tao Ma <tao.ma at oracle.com>
>
>
More information about the Ocfs2-devel
mailing list