diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-07-24 14:42:05 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-13 11:34:27 +0300 |
commit | 547000da6412c45456ff2ff44a171d01027bd727 (patch) | |
tree | 2f99e7033dd87273876a36081cc42c9926dc6709 /fs/ubifs/budget.c | |
parent | f769108424a19c7758546d1d7d19f098b1a33759 (diff) | |
download | linux-547000da6412c45456ff2ff44a171d01027bd727.tar.gz linux-547000da6412c45456ff2ff44a171d01027bd727.tar.bz2 linux-547000da6412c45456ff2ff44a171d01027bd727.zip |
UBIFS: improve budgeting checks
Budgeting is a crucial UBIFS subsystem - add more assertions
to improve requests checking. This is not compiled in when
UBIFS debugging is disabled.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/budget.c')
-rw-r--r-- | fs/ubifs/budget.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/ubifs/budget.c b/fs/ubifs/budget.c index 12a1717db87c..f5afce5f37bd 100644 --- a/fs/ubifs/budget.c +++ b/fs/ubifs/budget.c @@ -543,6 +543,12 @@ int ubifs_budget_space(struct ubifs_info *c, struct ubifs_budget_req *req) int err, idx_growth, data_growth, dd_growth; struct retries_info ri; + ubifs_assert(req->new_page <= 1); + ubifs_assert(req->dirtied_page <= 1); + ubifs_assert(req->new_dent <= 1); + ubifs_assert(req->mod_dent <= 1); + ubifs_assert(req->new_ino <= 1); + ubifs_assert(req->new_ino_d <= UBIFS_MAX_INO_DATA); ubifs_assert(req->dirtied_ino <= 4); ubifs_assert(req->dirtied_ino_d <= UBIFS_MAX_INO_DATA * 4); @@ -618,6 +624,12 @@ again: */ void ubifs_release_budget(struct ubifs_info *c, struct ubifs_budget_req *req) { + ubifs_assert(req->new_page <= 1); + ubifs_assert(req->dirtied_page <= 1); + ubifs_assert(req->new_dent <= 1); + ubifs_assert(req->mod_dent <= 1); + ubifs_assert(req->new_ino <= 1); + ubifs_assert(req->new_ino_d <= UBIFS_MAX_INO_DATA); ubifs_assert(req->dirtied_ino <= 4); ubifs_assert(req->dirtied_ino_d <= UBIFS_MAX_INO_DATA * 4); if (!req->recalculate) { |