diff options
author | Saul Wold <sgw@linux.intel.com> | 2012-01-27 08:51:54 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-02-01 14:58:45 +0000 |
commit | df5e886be059da35fb69710c79227cc768f1c58e (patch) | |
tree | c3f78a08134347a1690fd862554e5bf2c8b05d3b /meta | |
parent | ab282056148f3152f96b6990e09270ae5405da9d (diff) | |
download | openembedded-core-df5e886be059da35fb69710c79227cc768f1c58e.tar.gz openembedded-core-df5e886be059da35fb69710c79227cc768f1c58e.tar.bz2 openembedded-core-df5e886be059da35fb69710c79227cc768f1c58e.tar.xz openembedded-core-df5e886be059da35fb69710c79227cc768f1c58e.zip |
genext2fs: fix inode computation
This patch fixes a problem with the computation of inodes
based on the bytes_per_inode options, for a larger FS (> 2G)
the inode count would go negative and a smaller default
count would be used, this would cause the FS to run out of
inodes.
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch | 35 | ||||
-rw-r--r-- | meta/recipes-devtools/genext2fs/genext2fs_1.4.1.bb | 4 |
2 files changed, 38 insertions, 1 deletions
diff --git a/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch b/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch new file mode 100644 index 000000000..3fd15e058 --- /dev/null +++ b/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/fix-nbblocks-cast.patch @@ -0,0 +1,35 @@ + +This patch fixes up the computation of nbinodes which would go +negative due to an int overflow issue when nbblocks > 2Meg for +a 2Gig or greater filesystem. + +The computation is now done as a float equation, since both nbblocks +and bytes_per_inode are no floats, and then cast to int by assignment. + +int tmp_nbinodes = nbblocks * BLOCKSIZE / bytes_per_inode; + +Upstream-Status: Submitted +Signed-off-by: Saul Wold <sgw@linux.intel.com> + +Index: genext2fs-1.4.1/genext2fs.c +=================================================================== +--- genext2fs-1.4.1.orig/genext2fs.c ++++ genext2fs-1.4.1/genext2fs.c +@@ -2447,7 +2447,7 @@ extern int optind, opterr, optopt; + int + main(int argc, char **argv) + { +- int nbblocks = -1; ++ float nbblocks = -1; + int nbinodes = -1; + int nbresrvd = -1; + float bytes_per_inode = -1; +@@ -2609,7 +2609,7 @@ main(int argc, char **argv) + } + if(fs_timestamp == -1) + fs_timestamp = time(NULL); +- fs = init_fs(nbblocks, nbinodes, nbresrvd, holes, fs_timestamp); ++ fs = init_fs((int)nbblocks, nbinodes, nbresrvd, holes, fs_timestamp); + } + + populate_fs(fs, dopt, didx, squash_uids, squash_perms, fs_timestamp, NULL); diff --git a/meta/recipes-devtools/genext2fs/genext2fs_1.4.1.bb b/meta/recipes-devtools/genext2fs/genext2fs_1.4.1.bb index 9364bb895..012ec6c4f 100644 --- a/meta/recipes-devtools/genext2fs/genext2fs_1.4.1.bb +++ b/meta/recipes-devtools/genext2fs/genext2fs_1.4.1.bb @@ -1,6 +1,8 @@ require genext2fs.inc -PR = "r0" +PR = "r1" + +SRC_URI += "file://fix-nbblocks-cast.patch" SRC_URI[md5sum] = "b7b6361bcce2cedff1ae437fadafe53b" SRC_URI[sha256sum] = "404dbbfa7a86a6c3de8225c8da254d026b17fd288e05cec4df2cc7e1f4feecfc" |