On Wed, Apr 16, 2014 at 02:03:37PM +1000, NeilBrown wrote: > memory allocates can happen while the xfs ilock is held in > xfs_free_eofblocks, particularly > > [<ffffffff813e6667>] kmem_zone_alloc+0x67/0xc0 > [<ffffffff813e5945>] xfs_trans_add_item+0x25/0x50 > [<ffffffff8143d64c>] xfs_trans_ijoin+0x2c/0x60 > [<ffffffff8142275e>] xfs_itruncate_extents+0xbe/0x400 > [<ffffffff813c72f4>] xfs_free_eofblocks+0x1c4/0x240 > > So set PF_FSTRANS to avoid this causing a deadlock. Another "You broke KM_NOFS" moment. You win a Kit Kat. ;) xfs_trans_add_item(): lidp = kmem_zone_zalloc(xfs_log_item_desc_zone, KM_SLEEP | KM_NOFS); KM_NOFS needs to work, otherwise XFS is just a huge steaming pile of memory reclaim deadlocks regardless of whether you are using loopback NFS or not. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html