[PATCH][CIFS] allow creating FIFOs when "sfu" mount option specified
Brown, James William
jim.brown at miami.edu
Fri Oct 20 15:05:15 UTC 2023
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))
More information about the samba-technical
mailing list