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/xfs/xfs_inode_item.c |
Line in file: | 1066 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-03-02 21:35:18 UTC |
1036 1037 iip = ip->i_itemp; 1038 mp = ip->i_mount; 1039 if (iip) { 1040 if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { 1041 spin_lock(&mp->m_ail_lock); 1042 if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { 1043 /* 1044 * xfs_trans_delete_ail() drops the AIL lock. 1045 */ 1046 xfs_trans_delete_ail(mp, (xfs_log_item_t *)iip); 1047 } else 1048 spin_unlock(&mp->m_ail_lock); 1049 } 1050 iip->ili_logged = 0; 1051 /* 1052 * Clear the ili_last_fields bits now that we know that the 1053 * data corresponding to them is safely on disk. 1054 */ 1055 iip->ili_last_fields = 0; 1056 /* 1057 * Clear the inode logging fields so no more flushes are 1058 * attempted. 1059 */ 1060 iip->ili_format.ilf_fields = 0; 1061 } 1062 /* 1063 * Release the inode's flush lock since we're done with it. 1064 */ 1065 xfs_ifunlock(ip); 1066} 1067 1068void 1069xfs_istale_done( 1070 xfs_buf_t *bp, 1071 xfs_inode_log_item_t *iip) 1072{ 1073 xfs_iflush_abort(iip->ili_inode); 1074} 1075 1076/*