From: David Zafman Date: Mon, 5 Nov 2012 19:26:56 +0000 (-0800) Subject: Improve performance of __writeback_single_inode() for nfs server X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cb9e39d1f783b107477145880193a8004089db51;p=ceph-client.git Improve performance of __writeback_single_inode() for nfs server Don't need to call filemap_fdatawait() if do_writepages() didn't do anything This fixes http://tracker.newdream.net/issues/3430 Signed-off-by: David Zafman --- diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index be3efc4f64f4..a53079879799 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -455,7 +455,7 @@ __writeback_single_inode(struct inode *inode, struct bdi_writeback *wb, * This is important for filesystems that modify metadata on data * I/O completion. */ - if (wbc->sync_mode == WB_SYNC_ALL) { + if (wbc->sync_mode == WB_SYNC_ALL && nr_to_write > 0) { int err = filemap_fdatawait(mapping); if (ret == 0) ret = err;