diff options
author | Goldwyn Rodrigues <rgoldwyn@gmail.com> | 2013-07-03 15:00:53 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 16:07:23 -0700 |
commit | 40bd62eb7fb8447798732e809a676ebaf2a7f910 (patch) | |
tree | becc8bf5e3a49a6e70676e4d1e7142dd04932600 | |
parent | 33add0e3a09a62c7796ea9838243c1cd933d8543 (diff) | |
download | op-kernel-dev-40bd62eb7fb8447798732e809a676ebaf2a7f910.zip op-kernel-dev-40bd62eb7fb8447798732e809a676ebaf2a7f910.tar.gz |
fs/ocfs2/journal.h: add bits_wanted while calculating credits in ocfs2_calc_extend_credits
While adding extends to a file, the credits are calculated incorrectly
and if the requested clusters is more than one (or more because we used
a conservative limit) then we run out of journal credits and we hit an
assert in journalling code.
The function parameter bits_wanted variable was not used at all.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/ocfs2/journal.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h index 0a99273..96f9ac2 100644 --- a/fs/ocfs2/journal.h +++ b/fs/ocfs2/journal.h @@ -537,7 +537,7 @@ static inline int ocfs2_calc_extend_credits(struct super_block *sb, extent_blocks = 1 + 1 + le16_to_cpu(root_el->l_tree_depth); return bitmap_blocks + sysfile_bitmap_blocks + extent_blocks + - ocfs2_quota_trans_credits(sb); + ocfs2_quota_trans_credits(sb) + bits_wanted; } static inline int ocfs2_calc_symlink_credits(struct super_block *sb) |