Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8b177ce authored by Jens Axboe's avatar Jens Axboe
Browse files

Merge branch 'for-3.2/core' into for-3.2/drivers

parents dfaa2ef6 d27769ec
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -536,7 +536,7 @@ void register_disk(struct gendisk *disk)
	disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);

	/* No minors to use for partitions */
	if (!disk_partitionable(disk))
	if (!disk_part_scan_enabled(disk))
		goto exit;

	/* No such device (e.g., media were just removed) */
@@ -841,7 +841,7 @@ static int show_partition(struct seq_file *seqf, void *v)
	char buf[BDEVNAME_SIZE];

	/* Don't show non-partitionable removeable devices or empty devices */
	if (!get_capacity(sgp) || (!disk_partitionable(sgp) &&
	if (!get_capacity(sgp) || (!disk_max_parts(sgp) &&
				   (sgp->flags & GENHD_FL_REMOVABLE)))
		return 0;
	if (sgp->flags & GENHD_FL_SUPPRESS_PARTITION_INFO)
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ static int blkdev_reread_part(struct block_device *bdev)
	struct gendisk *disk = bdev->bd_disk;
	int res;

	if (!disk_partitionable(disk) || bdev != bdev->bd_contains)
	if (!disk_part_scan_enabled(disk) || bdev != bdev->bd_contains)
		return -EINVAL;
	if (!capable(CAP_SYS_ADMIN))
		return -EACCES;
+1 −1
Original line number Diff line number Diff line
@@ -971,7 +971,7 @@ static void flush_disk(struct block_device *bdev, bool kill_dirty)

	if (!bdev->bd_disk)
		return;
	if (disk_partitionable(bdev->bd_disk))
	if (disk_part_scan_enabled(bdev->bd_disk))
		bdev->bd_invalidated = 1;
}

+4 −2
Original line number Diff line number Diff line
@@ -128,6 +128,7 @@ struct hd_struct {
#define GENHD_FL_EXT_DEVT			64 /* allow extended devt */
#define GENHD_FL_NATIVE_CAPACITY		128
#define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE	256
#define GENHD_FL_NO_PART_SCAN			512

enum {
	DISK_EVENT_MEDIA_CHANGE			= 1 << 0, /* media changed */
@@ -234,9 +235,10 @@ static inline int disk_max_parts(struct gendisk *disk)
	return disk->minors;
}

static inline bool disk_partitionable(struct gendisk *disk)
static inline bool disk_part_scan_enabled(struct gendisk *disk)
{
	return disk_max_parts(disk) > 1;
	return disk_max_parts(disk) > 1 &&
		!(disk->flags & GENHD_FL_NO_PART_SCAN);
}

static inline dev_t disk_devt(struct gendisk *disk)