ocfs2: Compute metaecc for superblocks during online resize.
authorJoel Becker <joel.becker@oracle.com>
Thu, 1 Apr 2010 01:25:44 +0000 (18:25 -0700)
committerJoel Becker <joel.becker@oracle.com>
Thu, 1 Apr 2010 01:39:08 +0000 (18:39 -0700)
Online resize writes out the new superblock and its backups directly.
The metaecc data wasn't being recomputed.  Let's do that directly.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>[
Cc: stable@kernel.org
fs/ocfs2/buffer_head_io.c

index 21c808f752d8dc42381ce556547d7ae60c4c82bb..b18c6d677f9ddcd4f4e32ac1c57b26965c64a9eb 100644 (file)
@@ -407,6 +407,7 @@ int ocfs2_write_super_or_backup(struct ocfs2_super *osb,
                                struct buffer_head *bh)
 {
        int ret = 0;
+       struct ocfs2_dinode *di = (struct ocfs2_dinode *)bh->b_data;
 
        mlog_entry_void();
 
@@ -426,6 +427,7 @@ int ocfs2_write_super_or_backup(struct ocfs2_super *osb,
 
        get_bh(bh); /* for end_buffer_write_sync() */
        bh->b_end_io = end_buffer_write_sync;
+       ocfs2_compute_meta_ecc(osb->sb, bh->b_data, &di->i_check);
        submit_bh(WRITE, bh);
 
        wait_on_buffer(bh);