diff options
author | Andy Adamson <andros@netapp.com> | 2009-04-01 09:22:41 -0400 |
---|---|---|
committer | Benny Halevy <bhalevy@panasas.com> | 2009-06-17 15:25:07 -0400 |
commit | eedc020e718b8ce45381383ec66030f09eb02a1e (patch) | |
tree | f29fe9309b67be4d5387c2ced72c063fb4df53c0 /fs/nfs/write.c | |
parent | aae2006e9b0c294114915c13022fa348e1a88023 (diff) |
nfs41: use rpc prepare call state for session reset
[nfs41: change nfs4_restart_rpc argument]
[nfs41: check for session not minorversion]
[nfs41: trigger the state manager for session reset]
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
[always define nfs4_restart_rpc]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
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 85a76409de13..ce728829f79a 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -1145,6 +1145,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) | |||
1145 | { | 1145 | { |
1146 | struct nfs_writeargs *argp = &data->args; | 1146 | struct nfs_writeargs *argp = &data->args; |
1147 | struct nfs_writeres *resp = &data->res; | 1147 | struct nfs_writeres *resp = &data->res; |
1148 | struct nfs_server *server = NFS_SERVER(data->inode); | ||
1148 | int status; | 1149 | int status; |
1149 | 1150 | ||
1150 | dprintk("NFS: %5u nfs_writeback_done (status %d)\n", | 1151 | dprintk("NFS: %5u nfs_writeback_done (status %d)\n", |
@@ -1177,7 +1178,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) | |||
1177 | if (time_before(complain, jiffies)) { | 1178 | if (time_before(complain, jiffies)) { |
1178 | dprintk("NFS: faulty NFS server %s:" | 1179 | dprintk("NFS: faulty NFS server %s:" |
1179 | " (committed = %d) != (stable = %d)\n", | 1180 | " (committed = %d) != (stable = %d)\n", |
1180 | NFS_SERVER(data->inode)->nfs_client->cl_hostname, | 1181 | server->nfs_client->cl_hostname, |
1181 | resp->verf->committed, argp->stable); | 1182 | resp->verf->committed, argp->stable); |
1182 | complain = jiffies + 300 * HZ; | 1183 | complain = jiffies + 300 * HZ; |
1183 | } | 1184 | } |
@@ -1203,7 +1204,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) | |||
1203 | */ | 1204 | */ |
1204 | argp->stable = NFS_FILE_SYNC; | 1205 | argp->stable = NFS_FILE_SYNC; |
1205 | } | 1206 | } |
1206 | rpc_restart_call(task); | 1207 | nfs4_restart_rpc(task, server->nfs_client); |
1207 | return -EAGAIN; | 1208 | return -EAGAIN; |
1208 | } | 1209 | } |
1209 | if (time_before(complain, jiffies)) { | 1210 | if (time_before(complain, jiffies)) { |
@@ -1215,8 +1216,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) | |||
1215 | /* Can't do anything about it except throw an error. */ | 1216 | /* Can't do anything about it except throw an error. */ |
1216 | task->tk_status = -EIO; | 1217 | task->tk_status = -EIO; |
1217 | } | 1218 | } |
1218 | nfs4_sequence_free_slot(NFS_SERVER(data->inode)->nfs_client, | 1219 | nfs4_sequence_free_slot(server->nfs_client, &data->res.seq_res); |
1219 | &data->res.seq_res); | ||
1220 | return 0; | 1220 | return 0; |
1221 | } | 1221 | } |
1222 | 1222 | ||