coverity scan 997010 reported following leak in repair/phase6.c 1309 if (error) { 1310 do_warn( 1311 _("space reservation failed (%d), filesystem may be out of space\n"), 1312 error); 25. Breaking from loop 1313 break; 1314 } ...... 1342 libxfs_trans_commit(tp, 1343 XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC); 1344 } CID 997010 (#1 of 1): Resource leak (RESOURCE_LEAK) 26. leaked_storage: Variable "tp" going out of scope leaks the storage it points to. 1345} Though not reported by coverity, it seems that there might be some entries in flist which needs to be freed in the failure case below libxfs_dir_createname(), so I also added a bmap cancel there. Signed-off-by: Li Zhong <zhong@xxxxxxxxxxxxxxxxxx> --- repair/phase6.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/repair/phase6.c b/repair/phase6.c index a4ad7a3..0d88ad2 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -1310,6 +1310,8 @@ longform_dir2_rebuild( do_warn( _("space reservation failed (%d), filesystem may be out of space\n"), error); + libxfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | + XFS_TRANS_ABORT); break; } @@ -1323,6 +1325,7 @@ longform_dir2_rebuild( do_warn( _("name create failed in ino %" PRIu64 " (%d), filesystem may be out of space\n"), ino, error); + libxfs_bmap_cancel(&flist); libxfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); break; -- 1.8.1.4 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs