NFSv4: Fix unnecessary delegation returns in nfs4_do_open
While nfs4_do_open() expects the fmode argument to be restricted to combinations of FMODE_READ and FMODE_WRITE, both nfs4_atomic_open() and nfs4_proc_create will pass the nfs_open_context->mode, which contains the full fmode_t. This patch ensures that nfs4_do_open strips the other fmode_t bits, fixing a problem in which the nfs4_do_open call would result in an unnecessary delegation return. Reported-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@vger.kernel.org
This commit is contained in:
parent
02c67525cf
commit
2d0dbc6ae8
|
@ -1902,6 +1902,7 @@ static struct nfs4_state *nfs4_do_open(struct inode *dir,
|
|||
struct nfs4_state *res;
|
||||
int status;
|
||||
|
||||
fmode &= FMODE_READ|FMODE_WRITE;
|
||||
do {
|
||||
status = _nfs4_do_open(dir, dentry, fmode, flags, sattr, cred,
|
||||
&res, ctx_th);
|
||||
|
|
Loading…
Reference in New Issue
Block a user