[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