Re: Streams support in Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Aug 25, 2018 at 11:36:15PM +0100, Al Viro wrote:
> On Sat, Aug 25, 2018 at 01:57:16PM -0700, Matthew Wilcox wrote:
> 
> > > > Right, but that code also assumes it's dealing with files.
> > > 
> > > I'm looking forward to your analysis of all code related to dentry tree,
> > > with an eye towards the places where such asserts are quietly made...
> > 
> > I really was hoping not to change the dentry tree at all.
> 
> Umhm...  Just what, pray tell, would be used to hold the stream name when
> you are creating/removing/renaming it?  And why are we talking about the
> use of existing syscalls for that thing?  In effect, you are multiplexing
> entirely new syscalls, with different pathname resolution, etc. upon the
> existing ones, using that new AT_... flag to select them.
> 
> Better yet, you need some new objects to represent those things, since
> you don't want any informative dentries.  And not fs-private ones, at
> that, since those new syscalls of yours would have to operate on them
> (after all, renaming something opened would probably be expected to
> have the opened descriptor to keep accessing the same object, wouldn't
> it?)

Let's look at it this way ... suppose we have an fcntl F_SETSTREAM.
And our API looks like:

	fd = open("/a/b/c", O_RDWR);
	fcntl(fd, F_SETSTREAM, "verity");
	read(fd, ...);

>From a VFS point of view, we just change file->f_inode to point to a
different inode.  We probably also have to change file->f_op.  Do we
also need to change file->f_path.dentry?




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux