Commit 352c676f authored by Stephen Lord's avatar Stephen Lord

[XFS] Fix deadlock caused by race between xfs_iunpin marking an inode

dirty, and the same inode being reallocated and reused by create.
The unlock_new_inode and mark_inode_dirty manage to corrupt the
i_state flags and end up leaving I_LOCK|I_NEW set.

SGI Modid: 2.5.x-xfs:slinx:151120a
parent 86f2f450
......@@ -2631,7 +2631,8 @@ xfs_iunpin(
if (vp) {
struct inode *inode = LINVFS_GET_IP(vp);
mark_inode_dirty_sync(inode);
if (!(inode->i_state & I_NEW))
mark_inode_dirty_sync(inode);
}
wake_up(&ip->i_ipin_wait);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment