|
@@ -657,16 +657,9 @@ static int nfs_writepages_callback(struct page *page, struct writeback_control *
|
|
|
int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
|
|
|
{
|
|
|
struct inode *inode = mapping->host;
|
|
|
- unsigned long *bitlock = &NFS_I(inode)->flags;
|
|
|
struct nfs_pageio_descriptor pgio;
|
|
|
int err;
|
|
|
|
|
|
- /* Stop dirtying of new pages while we sync */
|
|
|
- err = wait_on_bit_lock_action(bitlock, NFS_INO_FLUSHING,
|
|
|
- nfs_wait_bit_killable, TASK_KILLABLE);
|
|
|
- if (err)
|
|
|
- goto out_err;
|
|
|
-
|
|
|
nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGES);
|
|
|
|
|
|
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)
|
|
|
err = write_cache_pages(mapping, wbc, nfs_writepages_callback, &pgio);
|
|
|
nfs_pageio_complete(&pgio);
|
|
|
|
|
|
- clear_bit_unlock(NFS_INO_FLUSHING, bitlock);
|
|
|
- smp_mb__after_atomic();
|
|
|
- wake_up_bit(bitlock, NFS_INO_FLUSHING);
|
|
|
-
|
|
|
if (err < 0)
|
|
|
goto out_err;
|
|
|
err = pgio.pg_error;
|