Showing error 1373

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_buf_item.c
Line in file: 1147
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

1117 * care of cleaning up the buffer itself.
1118 */
1119/* ARGSUSED */
1120void
1121xfs_buf_iodone(
1122        xfs_buf_t                *bp,
1123        xfs_buf_log_item_t        *bip)
1124{
1125        struct xfs_mount        *mp;
1126
1127        ASSERT(bip->bli_buf == bp);
1128
1129        xfs_buf_rele(bp);
1130        mp = bip->bli_item.li_mountp;
1131
1132        /*
1133         * If we are forcibly shutting down, this may well be
1134         * off the AIL already. That's because we simulate the
1135         * log-committed callbacks to unpin these buffers. Or we may never
1136         * have put this item on AIL because of the transaction was
1137         * aborted forcibly. xfs_trans_delete_ail() takes care of these.
1138         *
1139         * Either way, AIL is useless if we're forcing a shutdown.
1140         */
1141        spin_lock(&mp->m_ail_lock);
1142        /*
1143         * xfs_trans_delete_ail() drops the AIL lock.
1144         */
1145        xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip);
1146        xfs_buf_item_free(bip);
1147}
1148
1149#if defined(XFS_BLI_TRACE)
1150void
1151xfs_buf_item_trace(
1152        char                        *id,
1153        xfs_buf_log_item_t        *bip)
1154{
1155        xfs_buf_t                *bp;
1156        ASSERT(bip->bli_trace != NULL);
1157
Show full sources