diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2009-12-13 13:56:27 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2009-12-13 13:56:27 -0500 |
commit | 52c9948b1fd80381ba5a9a87dcc4fbe3cf4979b8 (patch) | |
tree | 7bca6a20560f428442f18450df0948774f982df0 /fs/nfs/write.c | |
parent | f40542532e96dda5506eb76badea322f2ae4731c (diff) | |
parent | 190f38e5cedc910940b1da9015f00458c18f97b4 (diff) |
Merge branch 'nfs-for-2.6.33'
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index b1ce2ea9b93..d171696017f 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1216,7 +1216,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) */ argp->stable = NFS_FILE_SYNC; } - nfs4_restart_rpc(task, server->nfs_client); + nfs_restart_rpc(task, server->nfs_client); return -EAGAIN; } if (time_before(complain, jiffies)) { @@ -1228,7 +1228,6 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) /* Can't do anything about it except throw an error. */ task->tk_status = -EIO; } - nfs4_sequence_free_slot(server->nfs_client, &data->res.seq_res); return 0; } @@ -1612,15 +1611,16 @@ int nfs_migrate_page(struct address_space *mapping, struct page *newpage, if (ret) goto out_unlock; page_cache_get(newpage); + spin_lock(&mapping->host->i_lock); req->wb_page = newpage; SetPagePrivate(newpage); - set_page_private(newpage, page_private(page)); + set_page_private(newpage, (unsigned long)req); ClearPagePrivate(page); set_page_private(page, 0); + spin_unlock(&mapping->host->i_lock); page_cache_release(page); out_unlock: nfs_clear_page_tag_locked(req); - nfs_release_request(req); out: return ret; } |