diff options
-rw-r--r-- | fs/ocfs2/xattr.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index bc822d6ba542..7c2f4c9d1bd9 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c | |||
@@ -273,6 +273,15 @@ static int ocfs2_read_xattr_bucket(struct ocfs2_xattr_bucket *bucket, | |||
273 | rc = ocfs2_read_blocks(bucket->bu_inode, xb_blkno, | 273 | rc = ocfs2_read_blocks(bucket->bu_inode, xb_blkno, |
274 | bucket->bu_blocks, bucket->bu_bhs, 0, | 274 | bucket->bu_blocks, bucket->bu_bhs, 0, |
275 | NULL); | 275 | NULL); |
276 | if (!rc) { | ||
277 | rc = ocfs2_validate_meta_ecc_bhs(bucket->bu_inode->i_sb, | ||
278 | bucket->bu_bhs, | ||
279 | bucket->bu_blocks, | ||
280 | &bucket_xh(bucket)->xh_check); | ||
281 | if (rc) | ||
282 | mlog_errno(rc); | ||
283 | } | ||
284 | |||
276 | if (rc) | 285 | if (rc) |
277 | ocfs2_xattr_bucket_relse(bucket); | 286 | ocfs2_xattr_bucket_relse(bucket); |
278 | return rc; | 287 | return rc; |
@@ -301,6 +310,10 @@ static void ocfs2_xattr_bucket_journal_dirty(handle_t *handle, | |||
301 | { | 310 | { |
302 | int i; | 311 | int i; |
303 | 312 | ||
313 | ocfs2_compute_meta_ecc_bhs(bucket->bu_inode->i_sb, | ||
314 | bucket->bu_bhs, bucket->bu_blocks, | ||
315 | &bucket_xh(bucket)->xh_check); | ||
316 | |||
304 | for (i = 0; i < bucket->bu_blocks; i++) | 317 | for (i = 0; i < bucket->bu_blocks; i++) |
305 | ocfs2_journal_dirty(handle, bucket->bu_bhs[i]); | 318 | ocfs2_journal_dirty(handle, bucket->bu_bhs[i]); |
306 | } | 319 | } |