summaryrefslogtreecommitdiffstats
path: root/fs/nfs/write.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r--fs/nfs/write.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index e1c74d3db64d..980d44f3a84c 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -657,16 +657,9 @@ static int nfs_writepages_callback(struct page *page, struct writeback_control *
657int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc) 657int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
658{ 658{
659 struct inode *inode = mapping->host; 659 struct inode *inode = mapping->host;
660 unsigned long *bitlock = &NFS_I(inode)->flags;
661 struct nfs_pageio_descriptor pgio; 660 struct nfs_pageio_descriptor pgio;
662 int err; 661 int err;
663 662
664 /* Stop dirtying of new pages while we sync */
665 err = wait_on_bit_lock_action(bitlock, NFS_INO_FLUSHING,
666 nfs_wait_bit_killable, TASK_KILLABLE);
667 if (err)
668 goto out_err;
669
670 nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGES); 663 nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGES);
671 664
672 nfs_pageio_init_write(&pgio, inode, wb_priority(wbc), false, 665 nfs_pageio_init_write(&pgio, inode, wb_priority(wbc), false,
@@ -674,10 +667,6 @@ int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
674 err = write_cache_pages(mapping, wbc, nfs_writepages_callback, &pgio); 667 err = write_cache_pages(mapping, wbc, nfs_writepages_callback, &pgio);
675 nfs_pageio_complete(&pgio); 668 nfs_pageio_complete(&pgio);
676 669
677 clear_bit_unlock(NFS_INO_FLUSHING, bitlock);
678 smp_mb__after_atomic();
679 wake_up_bit(bitlock, NFS_INO_FLUSHING);
680
681 if (err < 0) 670 if (err < 0)
682 goto out_err; 671 goto out_err;
683 err = pgio.pg_error; 672 err = pgio.pg_error;