diff options
author | Ken Sumrall <ksumrall@android.com> | 2011-07-13 17:27:07 -0700 |
---|---|---|
committer | Ken Sumrall <ksumrall@android.com> | 2011-07-13 17:27:07 -0700 |
commit | 88833a6277f305b6a03ff29d8e9ffe717ddb4045 (patch) | |
tree | 8f588ad9a1b3101a2f7d34c8c86bc8a6e6482833 | |
parent | dba332410528d11474ae9f878b6984755d55e299 (diff) | |
download | extras-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.c | 3 |
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(); |