mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
ocfs2: Add ecc and checksums to ocfs2 xattr buckets.
The xattr bucket can span multiple blocks on disk. We have wrappers for this structure in the code. We use the new multi-block ecc calls to calculate and validate the bucket. Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
parent
13723d00e3
commit
4d0e214ee8
1 changed files with 13 additions and 0 deletions
|
@ -273,6 +273,15 @@ static int ocfs2_read_xattr_bucket(struct ocfs2_xattr_bucket *bucket,
|
|||
rc = ocfs2_read_blocks(bucket->bu_inode, xb_blkno,
|
||||
bucket->bu_blocks, bucket->bu_bhs, 0,
|
||||
NULL);
|
||||
if (!rc) {
|
||||
rc = ocfs2_validate_meta_ecc_bhs(bucket->bu_inode->i_sb,
|
||||
bucket->bu_bhs,
|
||||
bucket->bu_blocks,
|
||||
&bucket_xh(bucket)->xh_check);
|
||||
if (rc)
|
||||
mlog_errno(rc);
|
||||
}
|
||||
|
||||
if (rc)
|
||||
ocfs2_xattr_bucket_relse(bucket);
|
||||
return rc;
|
||||
|
@ -301,6 +310,10 @@ static void ocfs2_xattr_bucket_journal_dirty(handle_t *handle,
|
|||
{
|
||||
int i;
|
||||
|
||||
ocfs2_compute_meta_ecc_bhs(bucket->bu_inode->i_sb,
|
||||
bucket->bu_bhs, bucket->bu_blocks,
|
||||
&bucket_xh(bucket)->xh_check);
|
||||
|
||||
for (i = 0; i < bucket->bu_blocks; i++)
|
||||
ocfs2_journal_dirty(handle, bucket->bu_bhs[i]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue