summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Sumrall <ksumrall@android.com>2011-07-13 17:27:07 -0700
committerKen Sumrall <ksumrall@android.com>2011-07-13 17:27:07 -0700
commit88833a6277f305b6a03ff29d8e9ffe717ddb4045 (patch)
tree8f588ad9a1b3101a2f7d34c8c86bc8a6e6482833
parentdba332410528d11474ae9f878b6984755d55e299 (diff)
downloadextras-88833a6277f305b6a03ff29d8e9ffe717ddb4045.tar.gz
Round down the filesystem size to a multiple of the block size
If it's not a multiple of the block size, then errors are generated when making sparse images. This doesn't change the size of the generated filesystem, because partial blocks are not included in the filesystem. Change-Id: Ifc00ef7961f651ce22c6400759eadce2775d7811
-rw-r--r--ext4_utils/make_ext4fs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
index 298a02af..dbffc8d1 100644
--- a/ext4_utils/make_ext4fs.c
+++ b/ext4_utils/make_ext4fs.c
@@ -278,6 +278,9 @@ int make_ext4fs_internal(const char *filename, const char *directory,
if (info.block_size <= 0)
info.block_size = compute_block_size();
+ /* Round down the filesystem length to be a multiple of the block size */
+ info.len &= ~((u64)info.block_size - 1);
+
if (info.journal_blocks == 0)
info.journal_blocks = compute_journal_blocks();