Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 367317
b: refs/heads/master
c: bdeca1b
h: refs/heads/master
i:
  367315: 54a25ee
v: v3
  • Loading branch information
Trond Myklebust authored and Trond Myklebust committed Apr 23, 2013
1 parent 6f2df65 commit e893272
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cd4c9be2c61d4d974d348743fddb8183b8185abc
refs/heads/master: bdeca1b76cd56cd10a029f0ad2fd9ab6dd7e313d
14 changes: 10 additions & 4 deletions trunk/fs/nfs/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,7 @@ struct nfs4_opendata {
struct iattr attrs;
unsigned long timestamp;
unsigned int rpc_done : 1;
unsigned int is_recover : 1;
int rpc_status;
int cancelled;
};
Expand Down Expand Up @@ -1101,9 +1102,11 @@ static struct nfs4_state *nfs4_try_open_cached(struct nfs4_opendata *opendata)
/* Save the delegation */
nfs4_stateid_copy(&stateid, &delegation->stateid);
rcu_read_unlock();
ret = nfs_may_open(state->inode, state->owner->so_cred, open_mode);
if (ret != 0)
goto out;
if (!opendata->is_recover) {
ret = nfs_may_open(state->inode, state->owner->so_cred, open_mode);
if (ret != 0)
goto out;
}
ret = -EAGAIN;

/* Try to update the stateid using the delegation */
Expand Down Expand Up @@ -1670,8 +1673,11 @@ static int nfs4_run_open_task(struct nfs4_opendata *data, int isrecover)
data->rpc_done = 0;
data->rpc_status = 0;
data->cancelled = 0;
if (isrecover)
data->is_recover = 0;
if (isrecover) {
nfs4_set_sequence_privileged(&o_arg->seq_args);
data->is_recover = 1;
}
task = rpc_run_task(&task_setup_data);
if (IS_ERR(task))
return PTR_ERR(task);
Expand Down

0 comments on commit e893272

Please sign in to comment.