ocfs2: free allocated clusters if error occurs after ocfs2_claim_clusters
authorZongxun Wang <wangzongxun@huawei.com>
Thu, 6 Feb 2014 20:04:20 +0000 (12:04 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 6 Feb 2014 21:48:51 +0000 (13:48 -0800)
commitfb951eb5e167de9f07973ce0dfff674a2019bfab
tree4af8a9764fa9050b2aa70cf6683cdff8becb342d
parent277cba1d28b99169f2a056d0d6f98a4039531cb8
ocfs2: free allocated clusters if error occurs after ocfs2_claim_clusters

Even if using the same jbd2 handle, we cannot rollback a transaction.
So once some error occurs after successfully allocating clusters, the
allocated clusters will never be used and it means they are lost.  For
example, call ocfs2_claim_clusters successfully when expanding a file,
but failed in ocfs2_insert_extent.  So we need free the allocated
clusters if they are not used indeed.

Signed-off-by: Zongxun Wang <wangzongxun@huawei.com>
Signed-off-by: Joseph Qi <joseph.qi@huawei.com>
Acked-by: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Li Zefan <lizefan@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ocfs2/alloc.c
fs/ocfs2/localalloc.c
fs/ocfs2/localalloc.h