linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: sfrench-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org,
	agruen-63ez5xqkn6DQT0dZR+AlfA@public.gmane.org,
	dilger.kernel-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org,
	sandeen-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	tytso-3s7WtUTddSA@public.gmane.org,
	bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org,
	jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
	linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Andreas Gruenbacher <agruen-l3A5Bk7waGM@public.gmane.org>
Subject: [PATCH -V5 02/24] vfs: Pass all mask flags down to iop->check_acl
Date: Wed, 23 Feb 2011 19:21:49 +0530	[thread overview]
Message-ID: <1298469131-16555-3-git-send-email-aneesh.kumar@linux.vnet.ibm.com> (raw)
In-Reply-To: <1298469131-16555-1-git-send-email-aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>

From: Andreas Gruenbacher <agruen-l3A5Bk7waGM@public.gmane.org>

Some file permission models differentiate between writing to a file
(MAY_WRITE) and appending to it (MAY_WRITE | MAY_APPEND).  Pass all the
mask flags down to iop->check_acl so that filesystems can distinguish
between writing and appending.

All users of iop->check_acl pass the mask value back into
posix_acl_permission(); strip off the additional mask flags there.

Signed-off-by: Andreas Gruenbacher <agruen-l3A5Bk7waGM@public.gmane.org>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---
 fs/namei.c     |    4 +---
 fs/posix_acl.c |    2 ++
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/namei.c b/fs/namei.c
index b01eab8..f09ab1f 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -174,8 +174,6 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
 {
 	umode_t			mode = inode->i_mode;
 
-	mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
-
 	if (current_fsuid() == inode->i_uid)
 		mode >>= 6;
 	else {
@@ -192,7 +190,7 @@ static int acl_permission_check(struct inode *inode, int mask, unsigned int flag
 	/*
 	 * If the DACs are ok we don't need any capability check.
 	 */
-	if ((mask & ~mode) == 0)
+	if ((mask & (MAY_READ | MAY_WRITE | MAY_EXEC) & ~mode) == 0)
 		return 0;
 	return -EACCES;
 }
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index b1cf6bf..ad40df2 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -222,6 +222,8 @@ posix_acl_permission(struct inode *inode, const struct posix_acl *acl, int want)
 	const struct posix_acl_entry *pa, *pe, *mask_obj;
 	int found = 0;
 
+	want &= MAY_READ | MAY_WRITE | MAY_EXEC;
+
 	FOREACH_ACL_ENTRY(pa, acl, pe) {
                 switch(pa->e_tag) {
                         case ACL_USER_OBJ:
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2011-02-23 13:51 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-23 13:51 [PATCH -V5 00/24] New ACL format for better NFSv4 acl interoperability Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 01/24] vfs: Indicate that the permission functions take all the MAY_* flags Aneesh Kumar K.V
     [not found] ` <1298469131-16555-1-git-send-email-aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-02-23 13:51   ` Aneesh Kumar K.V [this message]
2011-02-23 13:51   ` [PATCH -V5 03/24] vfs: Add a comment to inode_permission() Aneesh Kumar K.V
2011-02-23 13:52   ` [PATCH -V5 14/24] richacl: Compute maximum file masks from an acl Aneesh Kumar K.V
2011-02-23 13:52   ` [PATCH -V5 15/24] richacl: Update the file masks in chmod() Aneesh Kumar K.V
2011-02-28 21:11   ` [PATCH -V5 00/24] New ACL format for better NFSv4 acl interoperability Ted Ts'o
2011-03-01  6:50     ` Aneesh Kumar K. V
2011-03-02 15:49       ` J. Bruce Fields
     [not found]         ` <20110302154943.GB29136-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-02 17:47           ` Aneesh Kumar K. V
     [not found]             ` <87ei6pza5v.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-03-02 18:58               ` J. Bruce Fields
2011-03-04 10:38                 ` Aneesh Kumar K. V
2011-03-05  0:32                   ` J. Bruce Fields
     [not found]                     ` <20110305003214.GF21260-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-03-05 17:58                       ` Aneesh Kumar K. V
2011-03-15  8:46                         ` Andreas Gruenbacher
2011-05-11 22:16     ` Björn JACKE
     [not found]     ` <E1QKJAl-00DGc7-EB@intern.SerNet.DE>
2011-05-13 15:40       ` Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 04/24] vfs: Add generic IS_ACL() test for acl support Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 05/24] vfs: Add IS_RICHACL() test for richacl support Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 06/24] vfs: Optimize out IS_RICHACL() if CONFIG_FS_RICHACL is not defined Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 07/24] vfs: Add new file and directory create permission flags Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 08/24] vfs: Add delete child and delete self " Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 09/24] vfs: Make the inode passed to inode_change_ok non-const Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 10/24] vfs: Add permission flags for setting file attributes Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 11/24] vfs: Make acl_permission_check() work for richacls Aneesh Kumar K.V
2011-02-23 13:51 ` [PATCH -V5 12/24] richacl: In-memory representation and helper functions Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 13/24] richacl: Permission mapping functions Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 16/24] richacl: Permission check algorithm Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 17/24] richacl: Create-time inheritance Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 18/24] richacl: Check if an acl is equivalent to a file mode Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 19/24] richacl: Automatic Inheritance Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 20/24] richacl: xattr mapping functions Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 21/24] ext4: Use IS_POSIXACL() to check for POSIX ACL support Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 22/24] vfs: Cache richacl in struct inode Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 23/24] ext4: Implement rich acl for ext4 Aneesh Kumar K.V
2011-02-23 13:52 ` [PATCH -V5 24/24] ext4: Add temporary richacl mount option " Aneesh Kumar K.V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1298469131-16555-3-git-send-email-aneesh.kumar@linux.vnet.ibm.com \
    --to=aneesh.kumar-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=agruen-63ez5xqkn6DQT0dZR+AlfA@public.gmane.org \
    --cc=agruen-l3A5Bk7waGM@public.gmane.org \
    --cc=bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org \
    --cc=dilger.kernel-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org \
    --cc=jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sandeen-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=sfrench-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=tytso-3s7WtUTddSA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).