cciss: factor out cciss_getluninfo
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Thu, 26 Aug 2010 18:56:20 +0000 (13:56 -0500)
committerJens Axboe <jaxboe@fusionio.com>
Fri, 10 Sep 2010 10:12:36 +0000 (12:12 +0200)
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
drivers/block/cciss.c

index 71018b9885957cb17b5b5add2e61309f98917659..5abdce3ef70b216a0e690f787574a37cb04854a8 100644 (file)
@@ -1382,12 +1382,27 @@ static int cciss_getdrivver(ctlr_info_t *h, void __user *argp)
        return 0;
 }
 
+static int cciss_getluninfo(ctlr_info_t *h,
+       struct gendisk *disk, void __user *argp)
+{
+       LogvolInfo_struct luninfo;
+       drive_info_struct *drv = get_drv(disk);
+
+       if (!argp)
+               return -EINVAL;
+       memcpy(&luninfo.LunID, drv->LunID, sizeof(luninfo.LunID));
+       luninfo.num_opens = drv->usage_count;
+       luninfo.num_parts = 0;
+       if (copy_to_user(argp, &luninfo, sizeof(LogvolInfo_struct)))
+               return -EFAULT;
+       return 0;
+}
+
 static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
        unsigned int cmd, unsigned long arg)
 {
        struct gendisk *disk = bdev->bd_disk;
        ctlr_info_t *h = get_host(disk);
-       drive_info_struct *drv = get_drv(disk);
        void __user *argp = (void __user *)arg;
 
        dev_dbg(&h->pdev->dev, "cciss_ioctl: Called with cmd=%x %lx\n",
@@ -1415,19 +1430,8 @@ static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
        case CCISS_REGNEWD:
        case CCISS_REVALIDVOLS:
                return rebuild_lun_table(h, 0, 1);
-
-       case CCISS_GETLUNINFO:{
-                       LogvolInfo_struct luninfo;
-
-                       memcpy(&luninfo.LunID, drv->LunID,
-                               sizeof(luninfo.LunID));
-                       luninfo.num_opens = drv->usage_count;
-                       luninfo.num_parts = 0;
-                       if (copy_to_user(argp, &luninfo,
-                                        sizeof(LogvolInfo_struct)))
-                               return -EFAULT;
-                       return 0;
-               }
+       case CCISS_GETLUNINFO:
+               return cciss_getluninfo(h, disk, argp);
        case CCISS_PASSTHRU:
                {
                        IOCTL_Command_struct iocommand;