summaryrefslogtreecommitdiff
path: root/e2fsck
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2010-09-24 22:57:06 -0400
committerTheodore Ts'o <tytso@mit.edu>2010-09-24 22:57:06 -0400
commitb70506bffba208daa2dc176be9370bc198ecd221 (patch)
tree9ef2307b0eb66ebe6b1b5ba09a0595b291e91640 /e2fsck
parent9d92a201deec7bbb1911e6e5ee98abf3c83882d4 (diff)
downloade2fsprogs-b70506bffba208daa2dc176be9370bc198ecd221.tar.gz
e2fsck: Set i_blocks_hi when correcting the i_blocks field in pass #1
For file systems with 64-bit block numbers, we need to make sure we correct the i_blocks_hi field as well as the i_blocks field when setting it to the correct value. Thanks to Justin Maggard for pointing this out. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'e2fsck')
-rw-r--r--e2fsck/pass1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index 93763cd8..67dd986f 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -2036,7 +2036,7 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
pctx->num = pb.num_blocks;
if (fix_problem(ctx, PR_1_BAD_I_BLOCKS, pctx)) {
inode->i_blocks = pb.num_blocks;
- inode->osd2.linux2.l_i_blocks_hi = 0;
+ inode->osd2.linux2.l_i_blocks_hi = pb.num_blocks >> 32;
dirty_inode++;
}
pctx->num = 0;