On Wed, Oct 03, 2012 at 07:05:52PM -0500, Ben Myers wrote:
> Hey Dave,
> On Wed, Oct 03, 2012 at 06:51:24AM +1000, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > writeback_inodes_sb_if_idle() is not sufficient to trigger delalloc
> > conversion fast enough to prevent spurious ENOSPC whent here are
> > hundreds of writers, thousands of small files and GBs of free RAM.
> > Change this to use sync_sb_inodes() to block callers while we wait
> > for writeback like the previous xfs_flush_inodes implementation did.
> > We have to hold the s_umount lock here, but because this call can
> > nest inside i_mutex (the parent directory in the create case, held
> > by the VFS), we have to use down_read_trylock() to avoid potential
> > deadlocks. In practice, this trylock will succeed on almost every
> > attempt as unmount/remount type operations are exceedingly rare.
> > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> Is this the one you want to go with? I'd prefer to apply this to patch 6
> itself rather than check in the regression followed by the fix. If you'd like
> resubmit this patch that's great, otherwise I'll be happy to repost the
Yes, this is the version that is necessary. Folding it back
into the original patch is fine as long as you fold the commit
message as well to explain why it was implemented this way.