Re: Streams support in Linux

Al Viro
2018-08-27T22:32:55Z

On Mon, Aug 27, 2018 at 11:21:43AM -0700, Matthew Wilcox wrote:
> On Mon, Aug 27, 2018 at 10:05:31AM -0700, Jeremy Allison wrote:
> > I can't think of a *single* case where a stream adds more
> > utility than an EA used in the same case.
> >
> > I don't want theoretical "well it would be nice if..",
> > I want clear "we couldn't have done it any other way"
> > kinds of things.
>
> I started this thread with such an example. The fs-verity patch proposed
> wants to store hundreds of megabytes of data associated with a particular
> file. The current solution is to append it to the end of the data then
> magic to set i_size lower but not remove the data from the file like a
> truncate would. Then more magic to read that data.
>
> It can't be stored in an xattr; xattrs are limited to 64k in size.
> And you have to read them / write them all-in-one-go; you can't read
> a little bit of them. How would you solve the fs-verity problem with
> less magic?

* create a subdirectory in root called e.g. .turdis
* prohibit lookups of that after mount has done the initial one and got a dentry
for it
* kernel-side, do O_TEMPFILE open, crap into it and link it in /.turdis/pile#42
* put that 42 into xattrs of the file that has served as, er, nutrient source.

No fs structure changes needed...