From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Sam Vilain <sam@vilain.net>
Cc: Herbert Poetzl <herbert@13thfloor.at>,
Andrew Morton <akpm@osdl.org>,
Christoph Hellwig <hch@infradead.org>,
Al Viro <viro@ftp.linux.org.uk>,
Linux Kernel ML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] vfs: cleanup of permission()
Date: Wed, 01 Mar 2006 18:26:10 -0800 [thread overview]
Message-ID: <1141266370.26382.42.camel@netapplinux-10.connectathon.org> (raw)
In-Reply-To: <44064BF7.9040605@vilain.net>
On Thu, 2006-03-02 at 14:35 +1300, Sam Vilain wrote:
> Trond Myklebust wrote:
> >>the second part is actually a hack to help nfs and fuse
> >>to get the 'required' information until there is a proper
> >>interface (at the vfs not inode level) to pass relevant
> >>information (probably dentry/vfsmount/flags)
> > The nameidata _IS_ the vfs structure for storing path context
> > information. You seem to be suggesting we need yet another one. Why?
>
> Because you can't make a nameidata without a lookup, and file based
> operations don't do a lookup. However you still have the vfsmnt and
> inode hanging off the file struct.
Which is fine by NFS, at least. We don't care about performing
permissions checks in those cases anyway, so a NULL nameidata is OK. The
only cases where we currently need to take action in ->permission() are
1) path walks (checking MAY_EXEC on the directory)
2) open() (on NFSv2/v3 only)
3) access()
In the future we can/should probably eliminate (2) by making an
atomic_open() for NFSv2/v3, so that we can correctly set the credential
that was used for the open() permissions check in the struct file.
> Either that or we make a dummy nameidata structure for this situation,
> possibly a filehandle relative lookup as used by openat() et al.
>
> >>>Secondly, an intent is _not_ a permissions mask by any stretch of the
> >>>imagination.
> >>see above
> >>>IOW: at the very least make that intent flag a separate parameter.
> >>IMHO it would be good to remove them completely form the
> >>current permission() checks.
> > Vetoed!
> > Redundant RPC calls have performance costs to the client, the server and
> > the network. That intent information is there in order to allow the
> > filesystem to figure out whether or not it needs to do the permissions
> > check, or if that check is already being done by other operations.
> > Removing the intents are therefore not an option.
>
> OK, so we either make it an extra parameter or 'properly' stack them
> into a single word. Do you have any preferences either way there?
An extra parameter should suffice for (1) and (2).
Cheers,
Trond
next prev parent reply other threads:[~2006-03-02 2:26 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-28 5:26 Herbert Poetzl
2006-02-28 5:29 ` [RFC 1/2] vfs: remove nameidata from *_permission() Herbert Poetzl
2006-02-28 5:30 ` [RFC 2/2] vfs: fixup nfs and fuse by passing nd_flags via mask Herbert Poetzl
2006-03-01 8:45 ` [RFC] vfs: cleanup of permission() Trond Myklebust
2006-03-01 12:28 ` tvrtko.ursulin
2006-03-01 12:37 ` Arjan van de Ven
2006-03-01 12:59 ` tvrtko.ursulin
2006-03-01 21:20 ` Sam Vilain
2006-03-01 13:06 ` Herbert Poetzl
2006-03-01 21:18 ` Sam Vilain
2006-03-01 13:11 ` Herbert Poetzl
2006-03-01 23:42 ` Trond Myklebust
2006-03-02 1:35 ` Sam Vilain
2006-03-02 2:26 ` Trond Myklebust [this message]
2006-03-01 22:11 ` Sam Vilain
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=1141266370.26382.42.camel@netapplinux-10.connectathon.org \
--to=trond.myklebust@fys.uio.no \
--cc=akpm@osdl.org \
--cc=hch@infradead.org \
--cc=herbert@13thfloor.at \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@vilain.net \
--cc=viro@ftp.linux.org.uk \
/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
Powered by JetHome