]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/block/dasd_ioctl.c
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
[linux-2.6-omap-h63xx.git] / drivers / s390 / block / dasd_ioctl.c
index b82d816d9ef7adda1d7d9ddd3c6f463666dc041b..4ce3f72ee1c13e2485e9a781b389f0eda2fd1c08 100644 (file)
@@ -9,6 +9,9 @@
  *
  * i/o controls for the dasd driver.
  */
+
+#define KMSG_COMPONENT "dasd"
+
 #include <linux/interrupt.h>
 #include <linux/major.h>
 #include <linux/fs.h>
@@ -94,7 +97,8 @@ static int dasd_ioctl_quiesce(struct dasd_block *block)
        if (!capable (CAP_SYS_ADMIN))
                return -EACCES;
 
-       DEV_MESSAGE(KERN_DEBUG, base, "%s", "Quiesce IO on device");
+       dev_info(&base->cdev->dev, "The DASD has been put in the quiesce "
+                "state\n");
        spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags);
        base->stopped |= DASD_STOPPED_QUIESCE;
        spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags);
@@ -103,7 +107,7 @@ static int dasd_ioctl_quiesce(struct dasd_block *block)
 
 
 /*
- * Quiesce device.
+ * Resume device.
  */
 static int dasd_ioctl_resume(struct dasd_block *block)
 {
@@ -114,7 +118,8 @@ static int dasd_ioctl_resume(struct dasd_block *block)
        if (!capable (CAP_SYS_ADMIN))
                return -EACCES;
 
-       DEV_MESSAGE(KERN_DEBUG, base, "%s", "resume IO on device");
+       dev_info(&base->cdev->dev, "I/O operations have been resumed "
+                "on the DASD\n");
        spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags);
        base->stopped &= ~DASD_STOPPED_QUIESCE;
        spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags);
@@ -140,13 +145,13 @@ static int dasd_format(struct dasd_block *block, struct format_data_t *fdata)
                return -EPERM;
 
        if (base->state != DASD_STATE_BASIC) {
-               DEV_MESSAGE(KERN_WARNING, base, "%s",
-                           "dasd_format: device is not disabled! ");
+               dev_warn(&base->cdev->dev,
+                        "The DASD cannot be formatted while it is enabled\n");
                return -EBUSY;
        }
 
        DBF_DEV_EVENT(DBF_NOTICE, base,
-                     "formatting units %d to %d (%d B blocks) flags %d",
+                     "formatting units %u to %u (%u B blocks) flags %u",
                      fdata->start_unit,
                      fdata->stop_unit, fdata->blksize, fdata->intensity);
 
@@ -169,10 +174,9 @@ static int dasd_format(struct dasd_block *block, struct format_data_t *fdata)
                dasd_sfree_request(cqr, cqr->memdev);
                if (rc) {
                        if (rc != -ERESTARTSYS)
-                               DEV_MESSAGE(KERN_ERR, base,
-                                           " Formatting of unit %d failed "
-                                           "with rc = %d",
-                                           fdata->start_unit, rc);
+                               dev_err(&base->cdev->dev,
+                                       "Formatting unit %d failed with "
+                                       "rc=%d\n", fdata->start_unit, rc);
                        return rc;
                }
                fdata->start_unit++;
@@ -199,8 +203,9 @@ dasd_ioctl_format(struct block_device *bdev, void __user *argp)
        if (copy_from_user(&fdata, argp, sizeof(struct format_data_t)))
                return -EFAULT;
        if (bdev != bdev->bd_contains) {
-               DEV_MESSAGE(KERN_WARNING, block->base, "%s",
-                           "Cannot low-level format a partition");
+               dev_warn(&block->base->cdev->dev,
+                        "The specified DASD is a partition and cannot be "
+                        "formatted\n");
                return -EINVAL;
        }
        return dasd_format(block, &fdata);
@@ -365,9 +370,9 @@ static int dasd_ioctl_readall_cmb(struct dasd_block *block, unsigned int cmd,
        return ret;
 }
 
-int
-dasd_ioctl(struct block_device *bdev, fmode_t mode,
-          unsigned int cmd, unsigned long arg)
+static int
+dasd_do_ioctl(struct block_device *bdev, fmode_t mode,
+             unsigned int cmd, unsigned long arg)
 {
        struct dasd_block *block = bdev->bd_disk->private_data;
        void __user *argp = (void __user *)arg;
@@ -420,3 +425,14 @@ dasd_ioctl(struct block_device *bdev, fmode_t mode,
                return -EINVAL;
        }
 }
+
+int dasd_ioctl(struct block_device *bdev, fmode_t mode,
+              unsigned int cmd, unsigned long arg)
+{
+       int rc;
+
+       lock_kernel();
+       rc = dasd_do_ioctl(bdev, mode, cmd, arg);
+       unlock_kernel();
+       return rc;
+}