• Kamal Dasu's avatar
    xfs: fix deadlock in xfs_rtfree_extent · 5575acc7
    Kamal Dasu authored
    To fix the deadlock caused by repeatedly calling xfs_rtfree_extent
    
     - removed xfs_ilock() and xfs_trans_ijoin() from xfs_rtfree_extent(),
       instead added asserts that the inode is locked and has an inode_item
       attached to it.
     - in xfs_bunmapi() when dealing with an inode with the rt flag
       call xfs_ilock() and xfs_trans_ijoin() so that the
       reference count is bumped on the inode and attached it to the
       transaction before calling into xfs_bmap_del_extent, similar to
       what we do in xfs_bmap_rtalloc.
    Signed-off-by: default avatarKamal Dasu <kdasu.kdev@gmail.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@infradead.org>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
    5575acc7
xfs_bmap.c 178 KB