OSDN Git Service

fs: copy BTRFS_IOC_[SG]ET_FSLABEL to vfs
authorEric Sandeen <sandeen@redhat.com>
Tue, 15 May 2018 20:20:03 +0000 (13:20 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Wed, 16 May 2018 15:50:16 +0000 (08:50 -0700)
This retains 256 chars as the maximum size through the interface, which
is the btrfs limit and AFAIK exceeds any other filesystem's maximum
label size.

This just copies the ioctl for now and leaves it in place for btrfs
for the time being.  A later patch will allow btrfs to use the new
common ioctl definition, but it may be sent after this is merged.

(Note, Reviewed-by's were originally given for the combined vfs+btrfs
patch, some license taken here.)

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Reviewed-by: David Sterba <dsterba@suse.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Documentation/ioctl/ioctl-number.txt
include/uapi/linux/fs.h

index 7f7413e..27c1b7b 100644 (file)
@@ -296,7 +296,8 @@ Code  Seq#(hex)     Include File            Comments
 0x90   00      drivers/cdrom/sbpcd.h
 0x92   00-0F   drivers/usb/mon/mon_bin.c
 0x93   60-7F   linux/auto_fs.h
-0x94   all     fs/btrfs/ioctl.h
+0x94   all     fs/btrfs/ioctl.h        Btrfs filesystem
+               and linux/fs.h          some lifted to vfs/generic
 0x97   00-7F   fs/ceph/ioctl.h         Ceph file system
 0x99   00-0F                           537-Addinboard driver
                                        <mailto:buk@buks.ipn.de>
index d2a8313..9d132f8 100644 (file)
@@ -242,6 +242,8 @@ struct fsxattr {
 #define FICLONERANGE   _IOW(0x94, 13, struct file_clone_range)
 #define FIDEDUPERANGE  _IOWR(0x94, 54, struct file_dedupe_range)
 
+#define FSLABEL_MAX 256        /* Max chars for the interface; each fs may differ */
+
 #define        FS_IOC_GETFLAGS                 _IOR('f', 1, long)
 #define        FS_IOC_SETFLAGS                 _IOW('f', 2, long)
 #define        FS_IOC_GETVERSION               _IOR('v', 1, long)
@@ -251,8 +253,10 @@ struct fsxattr {
 #define FS_IOC32_SETFLAGS              _IOW('f', 2, int)
 #define FS_IOC32_GETVERSION            _IOR('v', 1, int)
 #define FS_IOC32_SETVERSION            _IOW('v', 2, int)
-#define FS_IOC_FSGETXATTR              _IOR ('X', 31, struct fsxattr)
-#define FS_IOC_FSSETXATTR              _IOW ('X', 32, struct fsxattr)
+#define FS_IOC_FSGETXATTR              _IOR('X', 31, struct fsxattr)
+#define FS_IOC_FSSETXATTR              _IOW('X', 32, struct fsxattr)
+#define FS_IOC_GETFSLABEL              _IOR(0x94, 49, char[FSLABEL_MAX])
+#define FS_IOC_SETFSLABEL              _IOW(0x94, 50, char[FSLABEL_MAX])
 
 /*
  * File system encryption support