6906 mlog_errno(status);
6907 goto bail;
6908 }
6909
6910 status = ocfs2_do_truncate(osb, clusters_to_del, inode, fe_bh, handle,
6911 tc, path);
6912 if (status < 0) {
6913 mlog_errno(status);
6914 goto bail;
6915 }
6916
6917 mutex_unlock(&tl_inode->i_mutex);
6918 tl_sem = 0;
6919
6920 ocfs2_commit_trans(osb, handle);
6921 handle = NULL;
6922
6923 ocfs2_reinit_path(path, 1);
6924
6925
6926
6927
6928
6929 goto start;
6930
6931bail:
6932
6933 ocfs2_schedule_truncate_log_flush(osb, 1);
6934
6935 if (tl_sem)
6936 mutex_unlock(&tl_inode->i_mutex);
6937
6938 if (handle)
6939 ocfs2_commit_trans(osb, handle);
6940
6941 ocfs2_run_deallocs(osb, &tc->tc_dealloc);
6942
6943 ocfs2_free_path(path);
6944
6945
6946 ocfs2_free_truncate_context(tc);