aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2010-03-27 18:12:00 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2010-03-27 18:12:00 +0000
commitfddc12138a1512bc235a4fcb05548716e8a26d06 (patch)
treea1570d2160ebdcb4a3399c381417925e0199def7 /sys
parentbf876fcd34eac7f46d8bea6eeaa7291ab9337b1d (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_acl_nfs4.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/subr_acl_nfs4.c b/sys/kern/subr_acl_nfs4.c
index c3f4b65cbd5f..fbd233ba7646 100644
--- a/sys/kern/subr_acl_nfs4.c
+++ b/sys/kern/subr_acl_nfs4.c
@@ -82,6 +82,13 @@ _access_mask_from_accmode(accmode_t accmode)
access_mask |= accmode2mask[i].mask;
}
+ /*
+ * VAPPEND is just a modifier for VWRITE; if the caller asked
+ * for 'VAPPEND | VWRITE', we want to check for ACL_APPEND_DATA only.
+ */
+ if (access_mask & ACL_APPEND_DATA)
+ access_mask &= ~ACL_WRITE_DATA;
+
return (access_mask);
}