linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: David Howells <dhowells@redhat.com>,
	Miklos Szeredi <miklos@szeredi.hu>,
	alan@lxorguk.ukuu.org.uk, hch@infradead.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	adilger@sun.com, akpm@linux-foundation.org
Subject: Re: [RFC] O_NOACC: open without any access
Date: Wed, 24 Jun 2009 09:40:42 -0700 (PDT)	[thread overview]
Message-ID: <alpine.LFD.2.01.0906240933540.3240@localhost.localdomain> (raw)
In-Reply-To: <20090624105336.GO8633@ZenIV.linux.org.uk>



On Wed, 24 Jun 2009, Al Viro wrote:
> 
> i_filesystem_fop is certainly bogus, but why do we want to bother with
> file_operations at all?
> 
> Unless you really insist on unlimited use of ioctl(2) on such beasts (and
> any users will be non-portable for obvious reasons anyway), there's no need
> to go anywhere near ->open() *or* ->f_op in general.

A lot of filesystems (especially network filesystems) want to do something 
special when you open a node on them.

NFS, for example, does that whole alloc_nfs_open_context() thing to keep 
track of RPC credentials etc. It's where things like "filp->f_private" 
get set etc.

So if you don't call open(), you'll not initialize the filp sufficiently 
to do lots of operations.

But yes:

> Just add new methods to ->i_op (and we already have that coming from
> fs code) and teach do_filp_open() to
> 	* call permission() with new flag (MAY_TALK_TO_FS_NODE) for such
> open()
> 	* do not die with -ELOOP on symlinks if we have O_NOFOLLOW + your flag
> 	* do not call ->f_op->open() at all for such open()
> and we are all set.  Hell, we can even teach sys_ioctl() that given set
> of ioctls maps to calls of our new methods.  Taken from ->i_op...

Sure. That will work, but I do think that it's going to be more hacky than 
just trying to make the file descriptor look as real as possible, and just 
calling "open" on it.

But I don't really have any strong opinions.

		Linus

  parent reply	other threads:[~2009-06-24 16:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18  6:55 [RFC] O_NOACC: open without any access Miklos Szeredi
2009-06-23 13:46 ` Christoph Hellwig
2009-06-23 14:12   ` Miklos Szeredi
2009-06-23 14:34     ` Christoph Hellwig
2009-06-23 15:13       ` Miklos Szeredi
2009-06-23 15:52       ` David Howells
2009-06-23 16:06         ` Alan Cox
2009-06-23 16:10         ` David Howells
2009-06-23 16:31           ` Miklos Szeredi
2009-06-23 16:33           ` Alan Cox
2009-06-23 17:05           ` David Howells
2009-06-23 17:34             ` Linus Torvalds
2009-06-23 20:04               ` Miklos Szeredi
2009-06-24 10:53               ` Al Viro
2009-06-24 11:12                 ` Miklos Szeredi
2009-06-24 16:40                 ` Linus Torvalds [this message]
2009-06-23 22:44             ` David Howells
2009-06-23 17:20           ` David Howells
2009-06-23 16:53         ` Christoph Hellwig
2009-06-23 16:59     ` David Howells
2009-06-24 17:02 ` Ulrich Drepper
2009-06-24 18:06   ` Miklos Szeredi
2009-06-24 18:34     ` Ulrich Drepper

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=alpine.LFD.2.01.0906240933540.3240@localhost.localdomain \
    --to=torvalds@linux-foundation.org \
    --cc=adilger@sun.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=dhowells@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=viro@ZenIV.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;
as well as URLs for NNTP newsgroup(s).