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

Steve French smfrench at gmail.com
Sun Oct 29 21:06:33 UTC 2023


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 at lists.samba.org> 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



More information about the samba-technical mailing list