diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-22 18:23:22 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-31 17:21:40 +0300 |
commit | 9bbb5726efb64e2cfed42f6eec07db80cd87e63b (patch) | |
tree | e7c0a28fff531ef34bb35448479e6bbcaeffe1f9 | |
parent | 131130b9a1e6e523c64b34137b14f88ae1382a6a (diff) | |
download | op-kernel-dev-9bbb5726efb64e2cfed42f6eec07db80cd87e63b.zip op-kernel-dev-9bbb5726efb64e2cfed42f6eec07db80cd87e63b.tar.gz |
UBIFS: introduce LEB overhead
This is a preparational patch for the following statfs()
report fix.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r-- | fs/ubifs/super.c | 6 | ||||
-rw-r--r-- | fs/ubifs/ubifs.h | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 1018053..be23fd3 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -530,6 +530,12 @@ static int init_constants_early(struct ubifs_info *c) c->dead_wm = ALIGN(MIN_WRITE_SZ, c->min_io_size); c->dark_wm = ALIGN(UBIFS_MAX_NODE_SZ, c->min_io_size); + /* + * Calculate how many bytes would be wasted at the end of LEB if it was + * fully filled with data nodes of maximum size. This is used in + * calculations when reporting free space. + */ + c->leb_overhead = c->leb_size % UBIFS_MAX_DATA_NODE_SZ; return 0; } diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index 681d46e..57e5854 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h @@ -995,6 +995,9 @@ struct ubifs_mount_opts { * @max_idx_node_sz: maximum indexing node aligned on 8-bytes boundary * @max_inode_sz: maximum possible inode size in bytes * @max_znode_sz: size of znode in bytes + * + * @leb_overhead: how many bytes are wasted in an LEB when it is filled with + * data nodes of maximum size - used in free space reporting * @dead_wm: LEB dead space watermark * @dark_wm: LEB dark space watermark * @block_cnt: count of 4KiB blocks on the FS @@ -1226,6 +1229,8 @@ struct ubifs_info { int max_idx_node_sz; long long max_inode_sz; int max_znode_sz; + + int leb_overhead; int dead_wm; int dark_wm; int block_cnt; |