[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110901003843.1176.69266.stgit@elm3c44.beaverton.ibm.com>
Date: Wed, 31 Aug 2011 17:38:43 -0700
From: "Darrick J. Wong" <djwong@...ibm.com>
To: Andreas Dilger <adilger.kernel@...ger.ca>,
Theodore Tso <tytso@....edu>,
"Darrick J. Wong" <djwong@...ibm.com>
Cc: Sunil Mushran <sunil.mushran@...cle.com>,
Amir Goldstein <amir73il@...il.com>,
Andi Kleen <andi@...stfloor.org>,
Mingming Cao <cmm@...ibm.com>,
Joel Becker <jlbec@...lplan.org>, linux-ext4@...r.kernel.org,
Coly Li <colyli@...il.com>
Subject: [PATCH 33/37] tune2fs: Rewrite extended attribute block checksums
When enabling metadata checksums, rewrite separate extended attribute blocks.
Signed-off-by: Darrick J. Wong <djwong@...ibm.com>
---
misc/tune2fs.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 5663e49..60c1a6a 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -589,11 +589,13 @@ errcode_t rewrite_directory(ext2_filsys fs, ext2_ino_t dir,
*/
static void rewrite_inodes(ext2_filsys fs)
{
+ char *ea_buf;
char buf[EXT2_INODE_CORE_SIZE(fs->super)];
struct ext2_inode_large *inode = (struct ext2_inode_large *)buf;
ext2_inode_scan scan;
errcode_t retval;
ext2_ino_t ino;
+ blk64_t file_acl_block;
if (fs->super->s_creator_os != EXT2_OS_LINUX)
return;
@@ -604,6 +606,12 @@ static void rewrite_inodes(ext2_filsys fs)
exit(1);
}
+ retval = ext2fs_get_mem(fs->blocksize, &ea_buf);
+ if (retval) {
+ com_err("set_csum", retval, "while allocating memory");
+ exit(1);
+ }
+
do {
retval = ext2fs_get_next_inode(scan, &ino, inode);
if (retval) {
@@ -633,7 +641,25 @@ static void rewrite_inodes(ext2_filsys fs)
exit(1);
}
}
+
+ file_acl_block = ext2fs_file_acl_block(inode);
+ if (!file_acl_block)
+ continue;
+ retval = ext2fs_read_ext_attr2(fs, file_acl_block, ea_buf);
+ if (retval) {
+ com_err("rewrite_eablock", retval,
+ "while rewriting extended attribute");
+ exit(1);
+ }
+ retval = ext2fs_write_ext_attr2(fs, file_acl_block, ea_buf);
+ if (retval) {
+ com_err("rewrite_eablock", retval,
+ "while rewriting extended attribute");
+ exit(1);
+ }
} while (ino);
+
+ ext2fs_free_mem(&ea_buf);
ext2fs_close_inode_scan(scan);
}
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists