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. -- 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