nfs: verify open flags before allowing open
Commit 9597c13b
forbade opens with O_APPEND|O_DIRECT for NFSv4:
nfs: verify open flags before allowing an atomic open
Currently, you can open a NFSv4 file with O_APPEND|O_DIRECT, but cannot
fcntl(F_SETFL,...) with those flags. This flag combination is explicitly
forbidden on NFSv3 opens, and it seems like it should also be on NFSv4.
However, you can still open a file with O_DIRECT|O_APPEND if there exists a
cached dentry for the file because nfs4_file_open() is used instead of
nfs_atomic_open() and the check is bypassed. Add the check in
nfs4_file_open() as well.
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
0c8315dd56
commit
18a6008972
1 changed files with 4 additions and 0 deletions
|
@ -41,6 +41,10 @@ nfs4_file_open(struct inode *inode, struct file *filp)
|
|||
|
||||
dprintk("NFS: open file(%pd2)\n", dentry);
|
||||
|
||||
err = nfs_check_flags(openflags);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if ((openflags & O_ACCMODE) == 3)
|
||||
openflags--;
|
||||
|
||||
|
|
Loading…
Reference in a new issue