提交 e8b177ce 编写于 作者: J Jens Axboe

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

...@@ -536,7 +536,7 @@ void register_disk(struct gendisk *disk) ...@@ -536,7 +536,7 @@ void register_disk(struct gendisk *disk)
disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj); disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
/* No minors to use for partitions */ /* No minors to use for partitions */
if (!disk_partitionable(disk)) if (!disk_part_scan_enabled(disk))
goto exit; goto exit;
/* No such device (e.g., media were just removed) */ /* No such device (e.g., media were just removed) */
...@@ -841,7 +841,7 @@ static int show_partition(struct seq_file *seqf, void *v) ...@@ -841,7 +841,7 @@ static int show_partition(struct seq_file *seqf, void *v)
char buf[BDEVNAME_SIZE]; char buf[BDEVNAME_SIZE];
/* Don't show non-partitionable removeable devices or empty devices */ /* 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))) (sgp->flags & GENHD_FL_REMOVABLE)))
return 0; return 0;
if (sgp->flags & GENHD_FL_SUPPRESS_PARTITION_INFO) if (sgp->flags & GENHD_FL_SUPPRESS_PARTITION_INFO)
......
...@@ -101,7 +101,7 @@ static int blkdev_reread_part(struct block_device *bdev) ...@@ -101,7 +101,7 @@ static int blkdev_reread_part(struct block_device *bdev)
struct gendisk *disk = bdev->bd_disk; struct gendisk *disk = bdev->bd_disk;
int res; int res;
if (!disk_partitionable(disk) || bdev != bdev->bd_contains) if (!disk_part_scan_enabled(disk) || bdev != bdev->bd_contains)
return -EINVAL; return -EINVAL;
if (!capable(CAP_SYS_ADMIN)) if (!capable(CAP_SYS_ADMIN))
return -EACCES; return -EACCES;
......
...@@ -971,7 +971,7 @@ static void flush_disk(struct block_device *bdev, bool kill_dirty) ...@@ -971,7 +971,7 @@ static void flush_disk(struct block_device *bdev, bool kill_dirty)
if (!bdev->bd_disk) if (!bdev->bd_disk)
return; return;
if (disk_partitionable(bdev->bd_disk)) if (disk_part_scan_enabled(bdev->bd_disk))
bdev->bd_invalidated = 1; bdev->bd_invalidated = 1;
} }
......
...@@ -128,6 +128,7 @@ struct hd_struct { ...@@ -128,6 +128,7 @@ struct hd_struct {
#define GENHD_FL_EXT_DEVT 64 /* allow extended devt */ #define GENHD_FL_EXT_DEVT 64 /* allow extended devt */
#define GENHD_FL_NATIVE_CAPACITY 128 #define GENHD_FL_NATIVE_CAPACITY 128
#define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE 256 #define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE 256
#define GENHD_FL_NO_PART_SCAN 512
enum { enum {
DISK_EVENT_MEDIA_CHANGE = 1 << 0, /* media changed */ DISK_EVENT_MEDIA_CHANGE = 1 << 0, /* media changed */
...@@ -234,9 +235,10 @@ static inline int disk_max_parts(struct gendisk *disk) ...@@ -234,9 +235,10 @@ static inline int disk_max_parts(struct gendisk *disk)
return disk->minors; 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) static inline dev_t disk_devt(struct gendisk *disk)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册