mirror of https://github.com/vitalif/e2fsprogs
libext2fs: refactor extent head creation
Don't open-code the creation of the extent tree header, since ext2fs_extent_open2() knows how to take care of this. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>crypto
parent
44765c4e85
commit
3548bb64b5
|
@ -412,19 +412,16 @@ ext2fs_inline_data_file_expand(ext2_filsys fs, ext2_ino_t ino,
|
|||
errcode_t retval;
|
||||
|
||||
/* Update inode */
|
||||
memset(inode->i_block, 0, sizeof(inode->i_block));
|
||||
if (EXT2_HAS_INCOMPAT_FEATURE(fs->super,
|
||||
EXT3_FEATURE_INCOMPAT_EXTENTS)) {
|
||||
int i;
|
||||
struct ext3_extent_header *eh;
|
||||
ext2_extent_handle_t handle;
|
||||
|
||||
eh = (struct ext3_extent_header *) &inode->i_block[0];
|
||||
eh->eh_depth = 0;
|
||||
eh->eh_entries = 0;
|
||||
eh->eh_magic = ext2fs_cpu_to_le16(EXT3_EXT_MAGIC);
|
||||
i = (sizeof(inode->i_block) - sizeof(*eh)) /
|
||||
sizeof(struct ext3_extent);
|
||||
eh->eh_max = ext2fs_cpu_to_le16(i);
|
||||
inode->i_flags |= EXT4_EXTENTS_FL;
|
||||
inode->i_flags &= ~EXT4_EXTENTS_FL;
|
||||
retval = ext2fs_extent_open2(fs, ino, inode, &handle);
|
||||
if (retval)
|
||||
return retval;
|
||||
ext2fs_extent_free(handle);
|
||||
}
|
||||
inode->i_flags &= ~EXT4_INLINE_DATA_FL;
|
||||
inode->i_size = 0;
|
||||
|
|
|
@ -518,17 +518,13 @@ errcode_t do_write_internal(ext2_filsys fs, ext2_ino_t cwd, const char *src,
|
|||
inode.i_flags |= EXT4_INLINE_DATA_FL;
|
||||
} else if (fs->super->s_feature_incompat &
|
||||
EXT3_FEATURE_INCOMPAT_EXTENTS) {
|
||||
int i;
|
||||
struct ext3_extent_header *eh;
|
||||
ext2_extent_handle_t handle;
|
||||
|
||||
eh = (struct ext3_extent_header *) &inode.i_block[0];
|
||||
eh->eh_depth = 0;
|
||||
eh->eh_entries = 0;
|
||||
eh->eh_magic = ext2fs_cpu_to_le16(EXT3_EXT_MAGIC);
|
||||
i = (sizeof(inode.i_block) - sizeof(*eh)) /
|
||||
sizeof(struct ext3_extent);
|
||||
eh->eh_max = ext2fs_cpu_to_le16(i);
|
||||
inode.i_flags |= EXT4_EXTENTS_FL;
|
||||
inode.i_flags &= ~EXT4_EXTENTS_FL;
|
||||
retval = ext2fs_extent_open2(fs, newfile, &inode, &handle);
|
||||
if (retval)
|
||||
return retval;
|
||||
ext2fs_extent_free(handle);
|
||||
}
|
||||
|
||||
retval = ext2fs_write_new_inode(fs, newfile, &inode);
|
||||
|
|
Loading…
Reference in New Issue