On Tue, Oct 02, 2012 at 09:22:05AM -0400, Christoph Hellwig wrote: > On Tue, Oct 02, 2012 at 10:10:22AM +1000, Dave Chinner wrote: > > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > > index da69c18..0ec7a46 100644 > > --- a/fs/xfs/xfs_inode.h > > +++ b/fs/xfs/xfs_inode.h > > @@ -294,7 +294,7 @@ xfs_new_eof(struct xfs_inode *ip, xfs_fsize_t new_size) > > static inline void > > xfs_flush_inodes(struct xfs_inode *ip) > > { > > - writeback_inodes_sb_if_idle(VFS_I(ip)->i_sb, WB_REASON_FS_FREE_SPACE); > > + sync_inodes_sb(VFS_I(ip)->i_sb); > > sync_inodes_sb needs s_umount held and asserts that, while our callers > usually won't have it. Ah, bugger. I didn't notice that, and hadn't checked dmesg after I ran 273 a few times with this patch. I just figured that because it waited for completion, it didn't need it. Adding s_umount is fine for the wirte path, but the create path holds a directory i_mutex so I'd guess that means it has to be a trylock to avoid lock inversion warnings from lockdep.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs