]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
gfs2: getlabel support
authorSteve Whitehouse <swhiteho@redhat.com>
Mon, 8 Oct 2018 19:32:35 +0000 (14:32 -0500)
committerBob Peterson <rpeterso@redhat.com>
Tue, 9 Oct 2018 12:06:16 +0000 (07:06 -0500)
Add support for the GETFSLABEL ioctl in gfs2.
I tested this patch and it works as expected.

Signed-off-by: Steve Whitehouse <swhiteho@redhat.com>
Tested-by: Abhi Das <adas@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/file.c

index 08369c6cd127a4fee6a301babe1fea80d475d2a3..6510f4e07d0e119890d434d98903b16424d951e1 100644 (file)
@@ -314,6 +314,17 @@ static int gfs2_set_flags(struct file *filp, u32 __user *ptr)
        return do_gfs2_set_flags(filp, gfsflags, mask);
 }
 
+static int gfs2_getlabel(struct file *filp, char __user *label)
+{
+       struct inode *inode = file_inode(filp);
+       struct gfs2_sbd *sdp = GFS2_SB(inode);
+
+       if (copy_to_user(label, sdp->sd_sb.sb_locktable, GFS2_LOCKNAME_LEN))
+               return -EFAULT;
+
+       return 0;
+}
+
 static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 {
        switch(cmd) {
@@ -323,7 +334,10 @@ static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                return gfs2_set_flags(filp, (u32 __user *)arg);
        case FITRIM:
                return gfs2_fitrim(filp, (void __user *)arg);
+       case FS_IOC_GETFSLABEL:
+               return gfs2_getlabel(filp, (char __user *)arg);
        }
+
        return -ENOTTY;
 }