From: Zheng Liu <wenqing.lz@xxxxxxxxxx> expand_dir command allocates two new block for the dir. It firstly allocates a new block, and copies all of inline data into this block. Then it allocates another block for this dir. Signed-off-by: Zheng Liu <wenqing.lz@xxxxxxxxxx> --- lib/ext2fs/expanddir.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/ext2fs/expanddir.c b/lib/ext2fs/expanddir.c index 22558d6..8ba8a23 100644 --- a/lib/ext2fs/expanddir.c +++ b/lib/ext2fs/expanddir.c @@ -114,8 +114,12 @@ errcode_t ext2fs_expand_dir(ext2_filsys fs, ext2_ino_t dir) es.newblocks = 0; es.dir = dir; - retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_APPEND, - 0, expand_dir_proc, &es); + if (ext2fs_has_inline_data(fs, dir)) + retval = ext2fs_inline_data_expand_dir(fs, dir, BLOCK_CHANGED, + 0, expand_dir_proc, &es); + else + retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_APPEND, + 0, expand_dir_proc, &es); if (es.err) return es.err; -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html