Joseph Qi
2013-Nov-25 06:11 UTC
[Ocfs2-devel] [PATCH] ocfs2: correctly update i_used in ocfs2_free_local_alloc_bits
This patch is based on ocfs2-free-allocated-clusters-if-error-occurs- after-ocfs2_claim_clusters.patch. oss.oracle.com/pipermail/ocfs2-devel/2013-November/009461.html We should note down num of bits to be freed, so as to update i_used correspondingly after clearing those bits in bitmap. Signed-off-by: Joseph Qi <joseph.qi at huawei.com> --- fs/ocfs2/localalloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c index 25ec3b7..0440134 100644 --- a/fs/ocfs2/localalloc.c +++ b/fs/ocfs2/localalloc.c @@ -788,6 +788,7 @@ int ocfs2_free_local_alloc_bits(struct ocfs2_super *osb, u32 num_bits) { int status, start; + u32 clear_bits; struct inode *local_alloc_inode; void *bitmap; struct ocfs2_dinode *alloc; @@ -801,6 +802,7 @@ int ocfs2_free_local_alloc_bits(struct ocfs2_super *osb, bitmap = la->la_bitmap; start = bit_off - le32_to_cpu(la->la_bm_off); + clear_bits = num_bits; status = ocfs2_journal_access_di(handle, INODE_CACHE(local_alloc_inode), @@ -811,7 +813,7 @@ int ocfs2_free_local_alloc_bits(struct ocfs2_super *osb, goto bail; } - while (num_bits--) + while (clear_bits--) ocfs2_clear_bit(start++, bitmap); le32_add_cpu(&alloc->id1.bitmap1.i_used, -num_bits); -- 1.8.4.3
Possibly Parallel Threads
- [PATCH Resend] ocfs2: free allocated clusters if error occurs after ocfs2_claim_clusters
- [PATCH] ocfs2: free allocated clusters if error occurs after ocfs2_claim_clusters
- [git patches] ocfs2 updates
- [PATCH] fs: fs2fs: Replaced calls to kmalloc and memcpy with kmemdup
- [PATCH] ocfs2: remove some pointless conditionals before kfree()