Commit fa01b1e9 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: add a bdev_is_partition helper



Add a littler helper to make the somewhat arcane bd_contains checks a
little more obvious.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 250eec9e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ int __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
		return -EINVAL;

	/* In case the discard request is in a partition */
	if (bdev->bd_partno)
	if (bdev_is_partition(bdev))
		part_offset = bdev->bd_part->start_sect;

	while (nr_sects) {
+2 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ static int blkpg_do_ioctl(struct block_device *bdev,
		return -EACCES;
	if (copy_from_user(&p, upart, sizeof(struct blkpg_partition)))
		return -EFAULT;
	if (bdev != bdev->bd_contains)
	if (bdev_is_partition(bdev))
		return -EINVAL;

	if (p.pno <= 0)
@@ -94,7 +94,7 @@ static int blkdev_reread_part(struct block_device *bdev)
{
	int ret;

	if (!disk_part_scan_enabled(bdev->bd_disk) || bdev != bdev->bd_contains)
	if (!disk_part_scan_enabled(bdev->bd_disk) || bdev_is_partition(bdev))
		return -EINVAL;
	if (!capable(CAP_SYS_ADMIN))
		return -EACCES;
+1 −1
Original line number Diff line number Diff line
@@ -852,7 +852,7 @@ EXPORT_SYMBOL(scsi_cmd_ioctl);

int scsi_verify_blk_ioctl(struct block_device *bd, unsigned int cmd)
{
	if (bd && bd == bd->bd_contains)
	if (bd && !bdev_is_partition(bd))
		return 0;

	if (capable(CAP_SYS_RAWIO))
+2 −2
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ read_val:
	return err >= 0 ? put_user_long(err, arg) : err;

set_val:
	if (bdev != bdev->bd_contains)
	if (bdev_is_partition(bdev))
		err = -EINVAL;
	else {
		if (!capable(CAP_SYS_ADMIN))
@@ -257,7 +257,7 @@ int generic_ide_ioctl(ide_drive_t *drive, struct block_device *bdev,
	switch (cmd) {
	case HDIO_OBSOLETE_IDENTITY:
	case HDIO_GET_IDENTITY:
		if (bdev != bdev->bd_contains)
		if (bdev_is_partition(bdev))
			return -EINVAL;
		return ide_get_identity_ioctl(drive, cmd, argp);
	case HDIO_GET_NICE:
+1 −1
Original line number Diff line number Diff line
@@ -903,7 +903,7 @@ static int device_is_rq_stackable(struct dm_target *ti, struct dm_dev *dev,
	struct request_queue *q = bdev_get_queue(bdev);

	/* request-based cannot stack on partitions! */
	if (bdev != bdev->bd_contains)
	if (bdev_is_partition(bdev))
		return false;

	return queue_is_mq(q);
Loading