aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2012-01-11 10:29:31 -0500
committerJens Axboe <axboe@kernel.dk>2012-01-11 10:29:31 -0500
commitef00f59c95fe6e002e7c6e3663cdea65e253f4cc (patch)
tree8e84273162b7a743767098cc08b6c6eb2b041281 /block
parentb1bd055d397e09f99dcef9b138ed104ff1812fcb (diff)
block: Add BLKROTATIONAL ioctl
Introduce an ioctl which permits applications to query whether a block device is rotational. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/compat_ioctl.c3
-rw-r--r--block/ioctl.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
index 7b725020823c..7c668c8a6f95 100644
--- a/block/compat_ioctl.c
+++ b/block/compat_ioctl.c
@@ -719,6 +719,9 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
719 case BLKSECTGET: 719 case BLKSECTGET:
720 return compat_put_ushort(arg, 720 return compat_put_ushort(arg,
721 queue_max_sectors(bdev_get_queue(bdev))); 721 queue_max_sectors(bdev_get_queue(bdev)));
722 case BLKROTATIONAL:
723 return compat_put_ushort(arg,
724 !blk_queue_nonrot(bdev_get_queue(bdev)));
722 case BLKRASET: /* compatible, but no compat_ptr (!) */ 725 case BLKRASET: /* compatible, but no compat_ptr (!) */
723 case BLKFRASET: 726 case BLKFRASET:
724 if (!capable(CAP_SYS_ADMIN)) 727 if (!capable(CAP_SYS_ADMIN))
diff --git a/block/ioctl.c b/block/ioctl.c
index ca939fc1030f..337d207ab14d 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -278,6 +278,8 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
278 return put_uint(arg, bdev_discard_zeroes_data(bdev)); 278 return put_uint(arg, bdev_discard_zeroes_data(bdev));
279 case BLKSECTGET: 279 case BLKSECTGET:
280 return put_ushort(arg, queue_max_sectors(bdev_get_queue(bdev))); 280 return put_ushort(arg, queue_max_sectors(bdev_get_queue(bdev)));
281 case BLKROTATIONAL:
282 return put_ushort(arg, !blk_queue_nonrot(bdev_get_queue(bdev)));
281 case BLKRASET: 283 case BLKRASET:
282 case BLKFRASET: 284 case BLKFRASET:
283 if(!capable(CAP_SYS_ADMIN)) 285 if(!capable(CAP_SYS_ADMIN))