I'm looking at backporting some upstream changes to earlier kernels, and ran across something I don't quite understand... In nfs_commit_unstable_pages, we set the flags to FLUSH_SYNC. We then zero out the flags if wbc->nonblocking or wbc->for_background is set. Shouldn't we also clear it out if wbc->sync_mode == WB_SYNC_NONE ? WB_SYNC_NONE means "don't wait on anything", so shouldn't that include not waiting on the COMMIT to complete? For discussion purposes, here's a patch that shows what I'm talking about (completely untested): diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 874972d..2fca906 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1440,7 +1440,8 @@ static int nfs_commit_unstable_pages(struct inode *inode, struct writeback_contr nfsi->ncommit <= (nfsi->npages >> 1)) goto out_mark_dirty; - if (wbc->nonblocking || wbc->for_background) + if (wbc->nonblocking || wbc->for_background || + wbc->sync_mode == WB_SYNC_NONE) flags = 0; ret = nfs_commit_inode(inode, flags); if (ret >= 0) { -- Jeff Layton <jlayton@xxxxxxxxxx> -- 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