2024-02-06 05:09:05

by Darrick J. Wong

[permalink] [raw]
Subject: Re: [PATCH 4/6] fs: FS_IOC_GETSYSFSNAME

On Mon, Feb 05, 2024 at 11:33:11PM -0500, Kent Overstreet wrote:
> On Mon, Feb 05, 2024 at 08:20:10PM -0800, Randy Dunlap wrote:
> >
> >
> > On 2/5/24 17:39, David Sterba wrote:
> > > On Mon, Feb 05, 2024 at 05:43:37PM -0500, Kent Overstreet wrote:
> > >> On Mon, Feb 05, 2024 at 02:27:32PM -0800, Darrick J. Wong wrote:
> > >>> On Mon, Feb 05, 2024 at 03:05:15PM -0500, Kent Overstreet wrote:
> > >>>> @@ -231,6 +235,7 @@ struct fsxattr {
> > >>>> #define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX])
> > >>>> #define FS_IOC_GETFSUUID _IOR(0x94, 51, struct fsuuid2)
> > >>>> #define FS_IOC_SETFSUUID _IOW(0x94, 52, struct fsuuid2)
> > >>>> +#define FS_IOC_GETFSSYSFSNAME _IOR(0x94, 53, struct fssysfsname)
> > >>>
> > >>> 0x94 is btrfs, don't add things to their "name" space.
> > >>
> > >> Can we please document this somewhere!?
> > >>
> > >> What, dare I ask, is the "namespace" I should be using?
> > >
> > > Grep for _IOCTL_MAGIC in include/uapi:
> > >
> > > uapi/linux/aspeed-lpc-ctrl.h:#define __ASPEED_LPC_CTRL_IOCTL_MAGIC 0xb2
> > > uapi/linux/aspeed-p2a-ctrl.h:#define __ASPEED_P2A_CTRL_IOCTL_MAGIC 0xb3
> > > uapi/linux/bt-bmc.h:#define __BT_BMC_IOCTL_MAGIC 0xb1
> > > uapi/linux/btrfs.h:#define BTRFS_IOCTL_MAGIC 0x94
> > > uapi/linux/f2fs.h:#define F2FS_IOCTL_MAGIC 0xf5
> > > uapi/linux/ipmi_bmc.h:#define __IPMI_BMC_IOCTL_MAGIC 0xB1
> > > uapi/linux/pfrut.h:#define PFRUT_IOCTL_MAGIC 0xEE
> > > uapi/rdma/rdma_user_ioctl.h:#define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC
> > > uapi/rdma/rdma_user_ioctl_cmds.h:#define RDMA_IOCTL_MAGIC 0x1b
> > >
> > > The label ioctls inherited the 0x94 namespace for backward
> > > compatibility but as already said, it's the private namespace of btrfs.
> > >
> >
> > or more generally, see Documentation/userspace-api/ioctl/ioctl-number.rst.
> >
> > For 0x94, it says:
> >
> > 0x94 all fs/btrfs/ioctl.h Btrfs filesystem
> > and linux/fs.h some lifted to vfs/generic
>
> You guys keep giving the same info over and over again, instead of
> anything that would be actually helpful...
>
> Does anyone know what the proper "namespace" is for new VFS level
> ioctls?
>
> ...Anyone?

I propose you use 0x15 (NAK) and add it to the Documentation/ as the
official VFS ioctl namespace. ;)

--D


2024-02-06 05:15:41

by Kent Overstreet

[permalink] [raw]
Subject: Re: [PATCH 4/6] fs: FS_IOC_GETSYSFSNAME

On Mon, Feb 05, 2024 at 09:08:53PM -0800, Darrick J. Wong wrote:
> On Mon, Feb 05, 2024 at 11:33:11PM -0500, Kent Overstreet wrote:
> > On Mon, Feb 05, 2024 at 08:20:10PM -0800, Randy Dunlap wrote:
> > >
> > >
> > > On 2/5/24 17:39, David Sterba wrote:
> > > > On Mon, Feb 05, 2024 at 05:43:37PM -0500, Kent Overstreet wrote:
> > > >> On Mon, Feb 05, 2024 at 02:27:32PM -0800, Darrick J. Wong wrote:
> > > >>> On Mon, Feb 05, 2024 at 03:05:15PM -0500, Kent Overstreet wrote:
> > > >>>> @@ -231,6 +235,7 @@ struct fsxattr {
> > > >>>> #define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX])
> > > >>>> #define FS_IOC_GETFSUUID _IOR(0x94, 51, struct fsuuid2)
> > > >>>> #define FS_IOC_SETFSUUID _IOW(0x94, 52, struct fsuuid2)
> > > >>>> +#define FS_IOC_GETFSSYSFSNAME _IOR(0x94, 53, struct fssysfsname)
> > > >>>
> > > >>> 0x94 is btrfs, don't add things to their "name" space.
> > > >>
> > > >> Can we please document this somewhere!?
> > > >>
> > > >> What, dare I ask, is the "namespace" I should be using?
> > > >
> > > > Grep for _IOCTL_MAGIC in include/uapi:
> > > >
> > > > uapi/linux/aspeed-lpc-ctrl.h:#define __ASPEED_LPC_CTRL_IOCTL_MAGIC 0xb2
> > > > uapi/linux/aspeed-p2a-ctrl.h:#define __ASPEED_P2A_CTRL_IOCTL_MAGIC 0xb3
> > > > uapi/linux/bt-bmc.h:#define __BT_BMC_IOCTL_MAGIC 0xb1
> > > > uapi/linux/btrfs.h:#define BTRFS_IOCTL_MAGIC 0x94
> > > > uapi/linux/f2fs.h:#define F2FS_IOCTL_MAGIC 0xf5
> > > > uapi/linux/ipmi_bmc.h:#define __IPMI_BMC_IOCTL_MAGIC 0xB1
> > > > uapi/linux/pfrut.h:#define PFRUT_IOCTL_MAGIC 0xEE
> > > > uapi/rdma/rdma_user_ioctl.h:#define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC
> > > > uapi/rdma/rdma_user_ioctl_cmds.h:#define RDMA_IOCTL_MAGIC 0x1b
> > > >
> > > > The label ioctls inherited the 0x94 namespace for backward
> > > > compatibility but as already said, it's the private namespace of btrfs.
> > > >
> > >
> > > or more generally, see Documentation/userspace-api/ioctl/ioctl-number.rst.
> > >
> > > For 0x94, it says:
> > >
> > > 0x94 all fs/btrfs/ioctl.h Btrfs filesystem
> > > and linux/fs.h some lifted to vfs/generic
> >
> > You guys keep giving the same info over and over again, instead of
> > anything that would be actually helpful...
> >
> > Does anyone know what the proper "namespace" is for new VFS level
> > ioctls?
> >
> > ...Anyone?
>
> I propose you use 0x15 (NAK) and add it to the Documentation/ as the
> official VFS ioctl namespace. ;)

Done!