diff options
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 11 |
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 * | |||
657 | int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc) | 657 | int 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; |