Goldwyn Rodrigues
2013-Jun-17 14:08 UTC
[Ocfs2-devel] [PATCH] 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 at suse.com> --- diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h index a3385b6..7d927cd 100644 --- a/fs/ocfs2/journal.h +++ b/fs/ocfs2/journal.h @@ -538,7 +538,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)
Jeff Liu
2013-Jun-17 14:40 UTC
[Ocfs2-devel] [PATCH] Add bits_wanted while calculating credits in ocfs2_calc_extend_credits
On 06/17/2013 10:08 PM, Goldwyn Rodrigues wrote:> 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 at suse.com>Looks good to me, thank you! Reviewed-by: Jie Liu <jeff.liu at oracle.com>> > --- > diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h > index a3385b6..7d927cd 100644 > --- a/fs/ocfs2/journal.h > +++ b/fs/ocfs2/journal.h > @@ -538,7 +538,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) > > _______________________________________________ > Ocfs2-devel mailing list > Ocfs2-devel at oss.oracle.com > https://oss.oracle.com/mailman/listinfo/ocfs2-devel