User: | Jiri Slaby |
Error type: | Leaving function in locked state |
Error type description: | Some lock is not unlocked on all paths of a function, so it is leaked |
File location: | fs/ocfs2/alloc.c |
Line in file: | 6949 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-21 20:30:05 UTC |
6919 6920 ocfs2_commit_trans(osb, handle); 6921 handle = NULL; 6922 6923 ocfs2_reinit_path(path, 1); 6924 6925 /* 6926 * The check above will catch the case where we've truncated 6927 * away all allocation. 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 /* This will drop the ext_alloc cluster lock for us */ 6946 ocfs2_free_truncate_context(tc); 6947 6948 mlog_exit(status); 6949 return status; 6950} 6951 6952/* 6953 * Expects the inode to already be locked. 6954 */ 6955int ocfs2_prepare_truncate(struct ocfs2_super *osb, 6956 struct inode *inode, 6957 struct buffer_head *fe_bh, 6958 struct ocfs2_truncate_context **tc) 6959{