diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2012-01-11 10:29:31 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-01-11 10:29:31 -0500 |
commit | ef00f59c95fe6e002e7c6e3663cdea65e253f4cc (patch) | |
tree | 8e84273162b7a743767098cc08b6c6eb2b041281 /block | |
parent | b1bd055d397e09f99dcef9b138ed104ff1812fcb (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.c | 3 | ||||
-rw-r--r-- | block/ioctl.c | 2 |
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)) |