Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 44511
b: refs/heads/master
c: eeac294
h: refs/heads/master
i:
  44509: 5af21aa
  44507: 24acd7f
  44503: abd2bf0
  44495: 97c12c8
  44479: a5d0dbd
v: v3
  • Loading branch information
J.Bruce Fields authored and Linus Torvalds committed Dec 13, 2006
1 parent 83485b7 commit 838b816
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 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: b591480bbe1a7f0e90533bce8ea86efecc84648e
refs/heads/master: eeac294ebd9254a937d90b00c48863e3af229047
24 changes: 13 additions & 11 deletions trunk/fs/nfsd/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,8 @@ typedef __be32(*nfsd4op_func)(struct svc_rqst *, struct nfsd4_compound_state *,
struct nfsd4_operation {
nfsd4op_func op_func;
u32 op_flags;
/* GETATTR and ops not listed as returning NFS4ERR_MOVED: */
#define ALLOWED_ON_ABSENT_FS 1
};

static struct nfsd4_operation nfsd4_ops[];
Expand Down Expand Up @@ -887,17 +889,8 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
op->status = nfserr_nofilehandle;
goto encode_op;
}
}
/* Check must be done at start of each operation, except
* for GETATTR and ops not listed as returning NFS4ERR_MOVED
*/
else if (cstate->current_fh.fh_export->ex_fslocs.migrated &&
!((op->opnum == OP_GETATTR) ||
(op->opnum == OP_PUTROOTFH) ||
(op->opnum == OP_PUTPUBFH) ||
(op->opnum == OP_RENEW) ||
(op->opnum == OP_SETCLIENTID) ||
(op->opnum == OP_RELEASE_LOCKOWNER))) {
} else if (cstate->current_fh.fh_export->ex_fslocs.migrated &&
!(opdesc->op_flags & ALLOWED_ON_ABSENT_FS)) {
op->status = nfserr_moved;
goto encode_op;
}
Expand Down Expand Up @@ -951,6 +944,7 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
},
[OP_GETATTR] = {
.op_func = (nfsd4op_func)nfsd4_getattr,
.op_flags = ALLOWED_ON_ABSENT_FS,
},
[OP_GETFH] = {
.op_func = (nfsd4op_func)nfsd4_getfh,
Expand Down Expand Up @@ -988,8 +982,13 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
[OP_PUTFH] = {
.op_func = (nfsd4op_func)nfsd4_putfh,
},
[OP_PUTPUBFH] = {
/* unsupported; just for future reference: */
.op_flags = ALLOWED_ON_ABSENT_FS,
},
[OP_PUTROOTFH] = {
.op_func = (nfsd4op_func)nfsd4_putrootfh,
.op_flags = ALLOWED_ON_ABSENT_FS,
},
[OP_READ] = {
.op_func = (nfsd4op_func)nfsd4_read,
Expand All @@ -1008,6 +1007,7 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
},
[OP_RENEW] = {
.op_func = (nfsd4op_func)nfsd4_renew,
.op_flags = ALLOWED_ON_ABSENT_FS,
},
[OP_RESTOREFH] = {
.op_func = (nfsd4op_func)nfsd4_restorefh,
Expand All @@ -1020,6 +1020,7 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
},
[OP_SETCLIENTID] = {
.op_func = (nfsd4op_func)nfsd4_setclientid,
.op_flags = ALLOWED_ON_ABSENT_FS,
},
[OP_SETCLIENTID_CONFIRM] = {
.op_func = (nfsd4op_func)nfsd4_setclientid_confirm,
Expand All @@ -1032,6 +1033,7 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
},
[OP_RELEASE_LOCKOWNER] = {
.op_func = (nfsd4op_func)nfsd4_release_lockowner,
.op_flags = ALLOWED_ON_ABSENT_FS,
},
};

Expand Down

0 comments on commit 838b816

Please sign in to comment.