Re: [RFC] O_NOACC: open without any access

From: David Howells
Date: Tue Jun 23 2009 - 13:06:22 EST


Miklos Szeredi <miklos@xxxxxxxxxx> wrote:

> So how about the following: provide a new open flag O_FILESYSTEM,
> meaning it opens the file on the underlying filesystem instead of the
> device/socket/symlink/etc...

Yes. That's what I need. That's what pioctl() is for: it operates on the
underlying fs, not any special aspects of the various types of file, and since
it doesn't do traditional I/O on those files, it doesn't need to, and
shouldn't, open them (thus avoiding side effects from ->open()), and doesn't
need R/W access to them.

> Add a new inode->i_filesystem_fop pointer

I'd rather not put it there. That means the inode struct grows. Perhaps
attach it to the inode_operations table or stick an open_noaccess() op in the
iops table.

> Define O_NOACC as 3. On open(..., O_FILESYSTEM | O_NOACC) require no
> privileges on the file.

It must also work with O_NOFOLLOW, which I think your suggestion will.

> AFS would set up i_filesystem_fop with its ->ioctl() function. No
> special handling needed for revoke()...

Sounds reasonable.

> That would work, no?

I think so.

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/