mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-26 16:23:57 +00:00
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. Reported-by: Chao Ye <cye@redhat.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
55b592933b
commit
9597c13b2f
1 changed files with 4 additions and 0 deletions
|
@ -1413,6 +1413,10 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
|
||||||
dfprintk(VFS, "NFS: atomic_open(%s/%ld), %s\n",
|
dfprintk(VFS, "NFS: atomic_open(%s/%ld), %s\n",
|
||||||
dir->i_sb->s_id, dir->i_ino, dentry->d_name.name);
|
dir->i_sb->s_id, dir->i_ino, dentry->d_name.name);
|
||||||
|
|
||||||
|
err = nfs_check_flags(open_flags);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
/* NFS only supports OPEN on regular files */
|
/* NFS only supports OPEN on regular files */
|
||||||
if ((open_flags & O_DIRECTORY)) {
|
if ((open_flags & O_DIRECTORY)) {
|
||||||
if (!d_unhashed(dentry)) {
|
if (!d_unhashed(dentry)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue