am 16052ec5: Merge "ext4_utils: Fix long symbolic links"
* commit '16052ec56a0836db7de51d6ea4173c6b53f0a9b9':
ext4_utils: Fix long symbolic links
diff --git a/ext4_utils/indirect.c b/ext4_utils/indirect.c
index 4e768a1..70f04d6 100644
--- a/ext4_utils/indirect.c
+++ b/ext4_utils/indirect.c
@@ -484,9 +484,10 @@
unsigned long backing_len)
{
struct block_allocation *alloc;
+ u32 block_len = DIV_ROUND_UP(len, info.block_size);
u8 *data = NULL;
- alloc = do_inode_allocate_indirect(inode, len);
+ alloc = do_inode_allocate_indirect(inode, block_len);
if (alloc == NULL) {
error("failed to allocate extents for %lu bytes", len);
return NULL;
@@ -498,6 +499,10 @@
error("failed to create backing for %lu bytes", backing_len);
}
+ rewind_alloc(alloc);
+ if (do_inode_attach_indirect(inode, alloc, block_len))
+ error("failed to attach blocks to indirect inode");
+
free_alloc(alloc);
return data;