diff options
author | Theodore Ts'o <tytso@mit.edu> | 2011-10-16 20:29:00 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2011-10-16 20:46:49 -0400 |
commit | 0c80c44bd08c60f3cd0ad87f12a71a75cac3bcaa (patch) | |
tree | 67a7c88cc9f1ec48d47664d8c06f655acf568ae4 /resize | |
parent | 515e555a0c36ae0294d71ba9ba45f7fa576cfd0f (diff) | |
download | e2fsprogs-0c80c44bd08c60f3cd0ad87f12a71a75cac3bcaa.tar.gz |
libext2fs: ext2fs_[set_]file_acl_block needs to check for 64-bit feature flag
The ext2fs_file_acl_block() and ext2fs_set_file_acl_block() needs to
only check i_file_acl_high if the 64-bit flag is set. This is needed
because otherwise we will run into problems on Hurd systems which
actually use that field for h_i_mode_high.
This involves an ABI change since we need to pass ext2_filsys to these
functions. Fortunately these functions were first included in the
1.42-WIP series, so it's OK for us to change them now. (This is why
we have 1.42-WIP releases. :-)
Addresses-Sourceforge-Bug: #3379227
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'resize')
-rw-r--r-- | resize/resize2fs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/resize/resize2fs.c b/resize/resize2fs.c index a957850c..06ce73e5 100644 --- a/resize/resize2fs.c +++ b/resize/resize2fs.c @@ -1371,18 +1371,19 @@ static errcode_t inode_scan_and_fix(ext2_resize_t rfs) pb.is_dir = LINUX_S_ISDIR(inode->i_mode); pb.changed = 0; - if (ext2fs_file_acl_block(inode) && rfs->bmap) { + if (ext2fs_file_acl_block(rfs->old_fs, inode) && rfs->bmap) { new_block = ext2fs_extent_translate(rfs->bmap, - ext2fs_file_acl_block(inode)); + ext2fs_file_acl_block(rfs->old_fs, inode)); if (new_block) { - ext2fs_file_acl_block_set(inode, new_block); + ext2fs_file_acl_block_set(rfs->old_fs, inode, + new_block); retval = ext2fs_write_inode_full(rfs->old_fs, ino, inode, inode_size); if (retval) goto errout; } } - if (ext2fs_inode_has_valid_blocks(inode) && + if (ext2fs_inode_has_valid_blocks2(rfs->old_fs, inode) && (rfs->bmap || pb.is_dir)) { pb.ino = ino; retval = ext2fs_block_iterate3(rfs->old_fs, |