From: Andreas Gruenbacher <agruen@suse.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: Linux-FSDevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [RFC] Apply the umask in VFS optionally (also POSIX ACL kernel infrastructure)
Date: Mon, 5 Aug 2002 13:41:28 +0200 [thread overview]
Message-ID: <200208051341.28455.agruen@suse.de> (raw)
In-Reply-To: <20020804154238.A28581@infradead.org>
On Sunday 04 August 2002 16:42, Christoph Hellwig wrote:
> On Sun, Aug 04, 2002 at 03:46:43PM +0200, Andreas Gruenbacher wrote:
> > I believe that (2) is the more reasonable choice in this case, so I
> > propose this patch, which adds the MS_NOUMASK mount option. The flag is
> > set by the file system, if the file system does not want the VFS to apply
> > the umask, after which the file system itself is responsible for applying
> > the umask where appropriate.
>
> In the current XFS trees we have that flag as IS_POSIXACL() and S_POSIXACL
> inode flag. (And I think some of your 2.4 patches do the same). After some
> thinking a per-superblock flag looks best to me, but instead of naming it
> MS_NOUMASK I'd really, really prefer MS_POSIXACL.
Well, the previous macro was IS_POSIX_ACL(inode); it was testing a super block
flag. We had an additional s_xattr_flags in the super block:
--- linux/include/linux/fs.h.orig Thu Aug 1 11:17:45 2002
+++ linux/include/linux/fs.h Thu Aug 1 11:32:22 2002
@@ -117,6 +117,21 @@
#define MS_NOUSER (1<<31)
/*
+ * These are the super block s_ext_attr_flags
+ */
+#define XATTR_MNT_FLAG_ALL 1 /* Extended attributes */
+#define XATTR_MNT_FLAG_USER 1 /* Extended user attributes */
+#define XATTR_MNT_FLAG_POSIX_ACL 2 /* Access Control Lists */
+
+#define __IS_XATTR_FLG(inode,flg) \
+ ((inode)->i_sb && \
+ (inode)->i_sb->s_xattr_flags & (XATTR_MNT_FLAG_ ## flg))
+
+#define IS_XATTR(inode) __IS_XATTR_FLG(inode, ALL)
+#define IS_XATTR_USER(inode) __IS_XATTR_FLG(inode, XATTR_USER)
+#define IS_POSIX_ACL(inode) __IS_XATTR_FLG(inode, POSIX_ACL)
+
+/*
* Superblock flags that can be altered by MS_REMOUNT
*/
#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|\
@@ -785,6 +800,7 @@
struct super_operations *s_op;
struct dquot_operations *dq_op;
unsigned long s_flags;
+ unsigned long s_xattr_flags;
unsigned long s_magic;
struct dentry *s_root;
struct rw_semaphore s_umount;
The MS_NOUMASK flag is in s_flags, and so doesn't require an additinal field.
In the Ext2/Ext3 patch that I'm working on, there is a per-filesystem mount
flag for POSIX ACLs (and also for USER EAs), which is being synchronized with
MS_NOUMASK.
> Rationale:
>
> (1) there is not much other reasoning why we shouldn't apply the umask
> (2) this way lowlevel filesystem drivers can enabled/disable acl
> per-mountpoint or even on-the-fly (if remount implements it)
>From the point of the VFS it's just `don't apply the umask'; the VFS doesn't
need to care about POSIX ACLs otherwise. (And who knows if there won't be
another case where this is needed?) The low-level filesystem can still
enable/disable ACLs per mount point or even per inode, it only needs to take
care of the umask itself.
> > Finally, I have a question related to this. We had a bug with kernel
> > tasks, which don't have a umask associated with them (nfsd in
> > particular). Should kernel tasks that create files be required to have a
> > valid fs_struct (which includes the umask), or should this be special
> > cased in file systems?
>
> Anything that deals with files shall have a valid fs_struct. The number
> of in-kernel threads that are supposed to deal with files is extremly
> low (only in-kernel fileservers like nfsd, tux or the now dead khttpd)
> and not worth workarounds in filesystem code. Not to mention it is much
> more elegant.
That sounds very reasonable.
Regards,
Andreas.
------------------------------------------------------------------
Andreas Gruenbacher SuSE Linux AG
mailto:agruen@suse.de Deutschherrnstr. 15-19
http://www.suse.de/ D-90429 Nuernberg, Germany
next prev parent reply other threads:[~2002-08-05 11:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-04 13:46 [RFC] Apply the umask in VFS optionally (also POSIX ACL kernel infrastructure) Andreas Gruenbacher
2002-08-04 14:42 ` Christoph Hellwig
2002-08-05 11:41 ` Andreas Gruenbacher [this message]
2002-08-05 12:24 ` Christoph Hellwig
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=200208051341.28455.agruen@suse.de \
--to=agruen@suse.de \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.