diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 424aa206470f..9f2759da74eb 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -240,6 +240,8 @@ static void nfs4_init_opendata_res(struct nfs4_opendata *p) | |||
240 | { | 240 | { |
241 | p->o_res.f_attr = &p->f_attr; | 241 | p->o_res.f_attr = &p->f_attr; |
242 | p->o_res.dir_attr = &p->dir_attr; | 242 | p->o_res.dir_attr = &p->dir_attr; |
243 | p->o_res.seqid = p->o_arg.seqid; | ||
244 | p->c_res.seqid = p->c_arg.seqid; | ||
243 | p->o_res.server = p->o_arg.server; | 245 | p->o_res.server = p->o_arg.server; |
244 | nfs_fattr_init(&p->f_attr); | 246 | nfs_fattr_init(&p->f_attr); |
245 | nfs_fattr_init(&p->dir_attr); | 247 | nfs_fattr_init(&p->dir_attr); |
@@ -730,7 +732,6 @@ static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) | |||
730 | renew_lease(data->o_res.server, data->timestamp); | 732 | renew_lease(data->o_res.server, data->timestamp); |
731 | data->rpc_done = 1; | 733 | data->rpc_done = 1; |
732 | } | 734 | } |
733 | nfs_increment_open_seqid(data->rpc_status, data->c_arg.seqid); | ||
734 | } | 735 | } |
735 | 736 | ||
736 | static void nfs4_open_confirm_release(void *calldata) | 737 | static void nfs4_open_confirm_release(void *calldata) |
@@ -860,7 +861,6 @@ static void nfs4_open_done(struct rpc_task *task, void *calldata) | |||
860 | if (!(data->o_res.rflags & NFS4_OPEN_RESULT_CONFIRM)) | 861 | if (!(data->o_res.rflags & NFS4_OPEN_RESULT_CONFIRM)) |
861 | nfs_confirm_seqid(&data->owner->so_seqid, 0); | 862 | nfs_confirm_seqid(&data->owner->so_seqid, 0); |
862 | } | 863 | } |
863 | nfs_increment_open_seqid(data->rpc_status, data->o_arg.seqid); | ||
864 | data->rpc_done = 1; | 864 | data->rpc_done = 1; |
865 | } | 865 | } |
866 | 866 | ||
@@ -1226,7 +1226,6 @@ static void nfs4_close_done(struct rpc_task *task, void *data) | |||
1226 | /* hmm. we are done with the inode, and in the process of freeing | 1226 | /* hmm. we are done with the inode, and in the process of freeing |
1227 | * the state_owner. we keep this around to process errors | 1227 | * the state_owner. we keep this around to process errors |
1228 | */ | 1228 | */ |
1229 | nfs_increment_open_seqid(task->tk_status, calldata->arg.seqid); | ||
1230 | switch (task->tk_status) { | 1229 | switch (task->tk_status) { |
1231 | case 0: | 1230 | case 0: |
1232 | nfs_set_open_stateid(state, &calldata->res.stateid, 0); | 1231 | nfs_set_open_stateid(state, &calldata->res.stateid, 0); |
@@ -1333,6 +1332,7 @@ int nfs4_do_close(struct path *path, struct nfs4_state *state, int wait) | |||
1333 | goto out_free_calldata; | 1332 | goto out_free_calldata; |
1334 | calldata->arg.bitmask = server->attr_bitmask; | 1333 | calldata->arg.bitmask = server->attr_bitmask; |
1335 | calldata->res.fattr = &calldata->fattr; | 1334 | calldata->res.fattr = &calldata->fattr; |
1335 | calldata->res.seqid = calldata->arg.seqid; | ||
1336 | calldata->res.server = server; | 1336 | calldata->res.server = server; |
1337 | calldata->path.mnt = mntget(path->mnt); | 1337 | calldata->path.mnt = mntget(path->mnt); |
1338 | calldata->path.dentry = dget(path->dentry); | 1338 | calldata->path.dentry = dget(path->dentry); |
@@ -3159,6 +3159,7 @@ static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl, | |||
3159 | p->arg.fh = NFS_FH(inode); | 3159 | p->arg.fh = NFS_FH(inode); |
3160 | p->arg.fl = &p->fl; | 3160 | p->arg.fl = &p->fl; |
3161 | p->arg.seqid = seqid; | 3161 | p->arg.seqid = seqid; |
3162 | p->res.seqid = seqid; | ||
3162 | p->arg.stateid = &lsp->ls_stateid; | 3163 | p->arg.stateid = &lsp->ls_stateid; |
3163 | p->lsp = lsp; | 3164 | p->lsp = lsp; |
3164 | atomic_inc(&lsp->ls_count); | 3165 | atomic_inc(&lsp->ls_count); |
@@ -3184,7 +3185,6 @@ static void nfs4_locku_done(struct rpc_task *task, void *data) | |||
3184 | 3185 | ||
3185 | if (RPC_ASSASSINATED(task)) | 3186 | if (RPC_ASSASSINATED(task)) |
3186 | return; | 3187 | return; |
3187 | nfs_increment_lock_seqid(task->tk_status, calldata->arg.seqid); | ||
3188 | switch (task->tk_status) { | 3188 | switch (task->tk_status) { |
3189 | case 0: | 3189 | case 0: |
3190 | memcpy(calldata->lsp->ls_stateid.data, | 3190 | memcpy(calldata->lsp->ls_stateid.data, |
@@ -3322,6 +3322,7 @@ static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl, | |||
3322 | p->arg.lock_stateid = &lsp->ls_stateid; | 3322 | p->arg.lock_stateid = &lsp->ls_stateid; |
3323 | p->arg.lock_owner.clientid = server->nfs_client->cl_clientid; | 3323 | p->arg.lock_owner.clientid = server->nfs_client->cl_clientid; |
3324 | p->arg.lock_owner.id = lsp->ls_id.id; | 3324 | p->arg.lock_owner.id = lsp->ls_id.id; |
3325 | p->res.lock_seqid = p->arg.lock_seqid; | ||
3325 | p->lsp = lsp; | 3326 | p->lsp = lsp; |
3326 | atomic_inc(&lsp->ls_count); | 3327 | atomic_inc(&lsp->ls_count); |
3327 | p->ctx = get_nfs_open_context(ctx); | 3328 | p->ctx = get_nfs_open_context(ctx); |
@@ -3348,6 +3349,7 @@ static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) | |||
3348 | return; | 3349 | return; |
3349 | data->arg.open_stateid = &state->stateid; | 3350 | data->arg.open_stateid = &state->stateid; |
3350 | data->arg.new_lock_owner = 1; | 3351 | data->arg.new_lock_owner = 1; |
3352 | data->res.open_seqid = data->arg.open_seqid; | ||
3351 | } else | 3353 | } else |
3352 | data->arg.new_lock_owner = 0; | 3354 | data->arg.new_lock_owner = 0; |
3353 | data->timestamp = jiffies; | 3355 | data->timestamp = jiffies; |
@@ -3365,7 +3367,6 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata) | |||
3365 | if (RPC_ASSASSINATED(task)) | 3367 | if (RPC_ASSASSINATED(task)) |
3366 | goto out; | 3368 | goto out; |
3367 | if (data->arg.new_lock_owner != 0) { | 3369 | if (data->arg.new_lock_owner != 0) { |
3368 | nfs_increment_open_seqid(data->rpc_status, data->arg.open_seqid); | ||
3369 | if (data->rpc_status == 0) | 3370 | if (data->rpc_status == 0) |
3370 | nfs_confirm_seqid(&data->lsp->ls_seqid, 0); | 3371 | nfs_confirm_seqid(&data->lsp->ls_seqid, 0); |
3371 | else | 3372 | else |
@@ -3377,7 +3378,6 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata) | |||
3377 | data->lsp->ls_flags |= NFS_LOCK_INITIALIZED; | 3378 | data->lsp->ls_flags |= NFS_LOCK_INITIALIZED; |
3378 | renew_lease(NFS_SERVER(data->ctx->path.dentry->d_inode), data->timestamp); | 3379 | renew_lease(NFS_SERVER(data->ctx->path.dentry->d_inode), data->timestamp); |
3379 | } | 3380 | } |
3380 | nfs_increment_lock_seqid(data->rpc_status, data->arg.lock_seqid); | ||
3381 | out: | 3381 | out: |
3382 | dprintk("%s: done, ret = %d!\n", __FUNCTION__, data->rpc_status); | 3382 | dprintk("%s: done, ret = %d!\n", __FUNCTION__, data->rpc_status); |
3383 | } | 3383 | } |