diff options
author | Daniil Lunev <d.lunev.mail@gmail.com> | 2012-09-06 10:41:18 -0500 |
---|---|---|
committer | Daniil Lunev <d.lunev.mail@gmail.com> | 2012-09-06 10:41:18 -0500 |
commit | 21feb70aa388da939a1de2116f16a0da7c62bbf5 (patch) | |
tree | fbd4e4273793059475fd8b5ddcd4c91bab6802a3 /usr/src/uts/common/fs/nfs/nfs4_srv.c | |
parent | 945b8d4004f9c581cff8b81126bd9adef52b84d9 (diff) | |
download | illumos-gate-21feb70aa388da939a1de2116f16a0da7c62bbf5.tar.gz |
3161 nfs: OPEN_DOWNGRADE with non-regular file returns wrong error
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/uts/common/fs/nfs/nfs4_srv.c')
-rw-r--r-- | usr/src/uts/common/fs/nfs/nfs4_srv.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs4_srv.c b/usr/src/uts/common/fs/nfs/nfs4_srv.c index b9d76c9569..3f6a824b6d 100644 --- a/usr/src/uts/common/fs/nfs/nfs4_srv.c +++ b/usr/src/uts/common/fs/nfs/nfs4_srv.c @@ -7735,6 +7735,11 @@ rfs4_op_open_downgrade(nfs_argop4 *argop, nfs_resop4 *resop, goto out; } + if (cs->vp->v_type != VREG) { + *cs->statusp = resp->status = NFS4ERR_INVAL; + return; + } + status = rfs4_get_state(&args->open_stateid, &sp, RFS4_DBS_VALID); if (status != NFS4_OK) { *cs->statusp = resp->status = status; |