Re: Streams support in Linux

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

 



On Tue, Aug 28, 2018 at 02:43:12PM -0500, Steve French wrote:
> > > On Tue, Aug 28, 2018 at 1:12 PM Jeremy Allison <jra@xxxxxxxxx> wrote:
> >
> > You shouldn't need a read stream ioctl. You only need 3 I think.
> >
> > struct open_stream {
> >         const char *stream_name;
> >         int open_flags,
> >         int stream_fd;
> > };
> >
> > struct open_stream os = {
> >                 "MyStreamName",
> >                 O_CREAT,
> >                 -1
> > };
> >
> > 1). ioctl(file_or_dir_fd, FIO_OPEN_STREAM, &os);
> >
> > Now read/write the os->stream_fd for the created
> > stream as desired. Use O_RDONLY|O_WRONLY|O_RDWR
> > in the flags field as needed.
> >
> > 2). ioctl(file_or_dir_fd, FIO_ENUM_STREAMS_DIR, &new_fd);
> >
> > Now use readdir() to get the list.
> >
> > 3). ioctl(stream_fd, FIO_DELETE_STREAM, 0);
> >
> > Delete the stream opened on stream_fd.
> >
> > Doesn't that cover everything ?
> 
> This would be trickier to code than you might think.
> 
> In particular I think the reaadir to list streams is going to be
> harder than the ioctl
> I had coded for it.   I also had code at one point to convert streams
> to xattrs etc.

Why is that ? You control any fd's you return,
so you can vector any readdir call into an
enum_streams request ?

I wouldn't return streams as xattrs, as they
are separately exposed and already have meaning
in SMB1/2/3.



[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