Commit 89f6c3362cb5a6bce96dbe6aa15b4749c2262b21
1 parent
1f691b07c5
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
nfsd4: delegation-based open reclaims should bypass permissions
We saw a v4.0 client's create fail as follows: - open create succeeds and gets a read delegation - client attempts to set mode on new file, gets DELAY while server recalls delegation. - client attempts a CLAIM_DELEGATE_CUR open using the delegation, gets error because of new file mode. This probably can't happen on a recent kernel since we're no longer giving out delegations on create opens. Nevertheless, it's a bug--reclaim opens should bypass permission checks. Reported-by: Steve Dickson <steved@redhat.com> Reported-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Showing 1 changed file with 2 additions and 1 deletions Side-by-side Diff
fs/nfsd/nfs4proc.c
... | ... | @@ -296,7 +296,8 @@ |
296 | 296 | |
297 | 297 | nfsd4_set_open_owner_reply_cache(cstate, open, resfh); |
298 | 298 | accmode = NFSD_MAY_NOP; |
299 | - if (open->op_created) | |
299 | + if (open->op_created || | |
300 | + open->op_claim_type == NFS4_OPEN_CLAIM_DELEGATE_CUR) | |
300 | 301 | accmode |= NFSD_MAY_OWNER_OVERRIDE; |
301 | 302 | status = do_open_permission(rqstp, resfh, open, accmode); |
302 | 303 | set_change_info(&open->op_cinfo, current_fh); |