On Fri, 2010-01-29 at 15:50 -0500, Christoph Hellwig wrote: > On Fri, Jan 29, 2010 at 03:19:13PM -0500, Trond Myklebust wrote: > > From: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > > > > Currently, the nfs server holds the inode->i_mutex across both the > > filemap_write_and_wait() call and the fsync() call itself. However we know > > that filemap_write_and_wait() is already safe against livelocks, so we only > > need to hold the mutex across the fsync() call. > > > > Fix this by reusing vfs_fsync(), which already does the right thing. > > Also make sure that we use vfs_fsync_range() in the COMMIT operation, to > > improve the efficiency for clients that do specify a range. > > I already sent a patch to replace nfsd_sync with it that should be > queued up. We can't use vfs_fsync for nfsd_sync_dir as we're already > holding i_mutex when calling it. The vfs_fsync_range optimizations > seems like something that should be applied ontop, though. > OK. I missed your patch as it flew by on the list, but I assume it is this one: http://git.linux-nfs.org/?p=bfields/linux.git;a=commitdiff;h=6a68f89ee1f2d177af4a5410fa7a45734c975fd6;hp=de3cab793c6a5c8505d66bee111edcc7098380ba I'll separate out the vfs_sync_range() changes and cobble up a patch on top of the above changeset... Cheers Trond -- 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