Re: [PATCH][CIFS] allow creating FIFOs when "sfu" mount option specified

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

 



Adding linux-cifs mailing list (the updated patch was only sent to
samba-technical)

On Sun, Oct 29, 2023 at 4:12 PM Steve French <smfrench@xxxxxxxxx> wrote:
>
> updated patch attached
>
>
> On Sun, Oct 29, 2023 at 4:06 PM Steve French <smfrench@xxxxxxxxx> wrote:
> >
> > Good catch - yes that was a typo - will fix.
> >
> > On Fri, Oct 20, 2023 at 10:07 AM Brown, James William via
> > samba-technical <samba-technical@xxxxxxxxxxxxxxx> wrote:
> > >
> > > On 10/20/2023 12:32 AM, Steve French via samba-technical wrote:
> > > > CAUTION: This email originated from outside the organization. DO NOT CLICK ON LINKS or OPEN ATTACHMENTS unless you know and trust the sender.
> > > >
> > > > mb3: fix creating FIFOs when mounting with "sfu" mount
> > > >   option
> > > >
> > > > Fixes some xfstests including generic/564 and generic/157
> > > >
> > > > The "sfu" mount option can be useful for creating special files (character
> > > > and block devices in particular) but could not create FIFOs. It did
> > > > recognize existing empty files with the "system" attribute flag as FIFOs
> > > > but this is too general, so to support creating FIFOs more safely use a new
> > > > tag (but the same length as those for char and block devices ie "IntxLNK"
> > > > and "IntxBLK") "LnxFIFO" to indicate that the file should be treated as a
> > > > FIFO (when mounted with the "sfu").   For some additional context note that
> > > > "sfu" followed the way that "Services for Unix" on Windows handled these
> > > > special files (at least for character and block devices and symlinks),
> > > > which is different than newer Windows which can handle special files
> > > > as reparse points (which isn't an option to many servers).
> > > >
> > > > @@ -5135,6 +5135,12 @@ smb2_make_node(unsigned int xid, struct inode *inode,
> > > >               pdev->minor = cpu_to_le64(MINOR(dev));
> > > >               rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms,
> > > >                                                       &bytes_written, iov, 1);
> > > > +     } else if (S_ISBLK(mode)) {
> > > > +             memcpy(pdev->type, "LnxFIFO", 8);
> > > > +             pdev->major = 0;
> > > > +             pdev->minor = 0;
> > > > +             rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms,
> > > > +                                                     &bytes_written, iov, 1);
> > > >       }
> > > >       tcon->ses->server->ops->close(xid, tcon, &fid);
> > > >       d_drop(dentry);
> > > > --
> > > Shouldn't "else if (S_ISBLK(mode))" be "S_ISFIFO"?
> > >
> > > else if (S_ISBLK(mode))
> > >
> > > else if (S_ISBLK(mode))
> > >
> >
> >
> > --
> > Thanks,
> >
> > Steve
>
>
>
> --
> Thanks,
>
> Steve



-- 
Thanks,

Steve




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux