diff options
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index d12a4be613a5..dfc19f1575a1 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -1845,12 +1845,15 @@ int nfs_wb_all(struct inode *inode) | |||
1845 | trace_nfs_writeback_inode_enter(inode); | 1845 | trace_nfs_writeback_inode_enter(inode); |
1846 | 1846 | ||
1847 | ret = filemap_write_and_wait(inode->i_mapping); | 1847 | ret = filemap_write_and_wait(inode->i_mapping); |
1848 | if (!ret) { | 1848 | if (ret) |
1849 | ret = nfs_commit_inode(inode, FLUSH_SYNC); | 1849 | goto out; |
1850 | if (!ret) | 1850 | ret = nfs_commit_inode(inode, FLUSH_SYNC); |
1851 | pnfs_sync_inode(inode, true); | 1851 | if (ret < 0) |
1852 | } | 1852 | goto out; |
1853 | pnfs_sync_inode(inode, true); | ||
1854 | ret = 0; | ||
1853 | 1855 | ||
1856 | out: | ||
1854 | trace_nfs_writeback_inode_exit(inode, ret); | 1857 | trace_nfs_writeback_inode_exit(inode, ret); |
1855 | return ret; | 1858 | return ret; |
1856 | } | 1859 | } |