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

Steve French smfrench at gmail.com
Sun Oct 29 21:12:43 UTC 2023


updated patch attached


On Sun, Oct 29, 2023 at 4:06 PM Steve French <smfrench at gmail.com> 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 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



-- 
Thanks,

Steve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-smb3-fix-creating-FIFOs-when-mounting-with-sfu-mount.patch
Type: text/x-patch
Size: 3269 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20231029/fbdda840/0001-smb3-fix-creating-FIFOs-when-mounting-with-sfu-mount.bin>


More information about the samba-technical mailing list