diff --git a/[refs] b/[refs] index e5b8f83e413a..ce9d1fc7ce72 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7f2f12d963e7c33a93bfb0b22f0178eb1e6a4196 +refs/heads/master: 5cf95214ccb915591e2214f81de4659302d3e452 diff --git a/trunk/fs/nfs/inode.c b/trunk/fs/nfs/inode.c index 443772df9b17..e8b41170d295 100644 --- a/trunk/fs/nfs/inode.c +++ b/trunk/fs/nfs/inode.c @@ -114,16 +114,12 @@ void nfs_clear_inode(struct inode *inode) */ int nfs_sync_mapping(struct address_space *mapping) { - int ret; + int ret = 0; - if (mapping->nrpages == 0) - return 0; - unmap_mapping_range(mapping, 0, 0, 0); - ret = filemap_write_and_wait(mapping); - if (ret != 0) - goto out; - ret = nfs_wb_all(mapping->host); -out: + if (mapping->nrpages != 0) { + unmap_mapping_range(mapping, 0, 0, 0); + ret = nfs_wb_all(mapping->host); + } return ret; }