genhd.c (3b5149ac50970669ee0ddb9629ec77ffd5c0622d) | genhd.c (1ebe2e5f9d68e94c524aba876f27b945669a7879) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * gendisk handling 4 * 5 * Portions Copyright (C) 2020 Christoph Hellwig 6 */ 7 8#include <linux/module.h> --- 362 unchanged lines hidden (view full) --- 371 rcu_read_unlock(); 372} 373EXPORT_SYMBOL_GPL(disk_uevent); 374 375int disk_scan_partitions(struct gendisk *disk, fmode_t mode) 376{ 377 struct block_device *bdev; 378 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * gendisk handling 4 * 5 * Portions Copyright (C) 2020 Christoph Hellwig 6 */ 7 8#include <linux/module.h> --- 362 unchanged lines hidden (view full) --- 371 rcu_read_unlock(); 372} 373EXPORT_SYMBOL_GPL(disk_uevent); 374 375int disk_scan_partitions(struct gendisk *disk, fmode_t mode) 376{ 377 struct block_device *bdev; 378 |
379 if (!disk_part_scan_enabled(disk)) | 379 if (disk->flags & GENHD_FL_NO_PART) |
380 return -EINVAL; 381 if (disk->open_partitions) 382 return -EBUSY; 383 384 set_bit(GD_NEED_PART_SCAN, &disk->state); 385 bdev = blkdev_get_by_dev(disk_devt(disk), mode, NULL); 386 if (IS_ERR(bdev)) 387 return PTR_ERR(bdev); --- 45 unchanged lines hidden (view full) --- 433 if (WARN_ON(disk->minors)) 434 return -EINVAL; 435 436 ret = blk_alloc_ext_minor(); 437 if (ret < 0) 438 return ret; 439 disk->major = BLOCK_EXT_MAJOR; 440 disk->first_minor = ret; | 380 return -EINVAL; 381 if (disk->open_partitions) 382 return -EBUSY; 383 384 set_bit(GD_NEED_PART_SCAN, &disk->state); 385 bdev = blkdev_get_by_dev(disk_devt(disk), mode, NULL); 386 if (IS_ERR(bdev)) 387 return PTR_ERR(bdev); --- 45 unchanged lines hidden (view full) --- 433 if (WARN_ON(disk->minors)) 434 return -EINVAL; 435 436 ret = blk_alloc_ext_minor(); 437 if (ret < 0) 438 return ret; 439 disk->major = BLOCK_EXT_MAJOR; 440 disk->first_minor = ret; |
441 disk->flags |= GENHD_FL_EXT_DEVT; | |
442 } 443 444 ret = disk_alloc_events(disk); 445 if (ret) 446 goto out_free_ext_minor; 447 448 /* delay uevents, until we scanned partition table */ 449 dev_set_uevent_suppress(ddev, 1); --- 417 unchanged lines hidden (view full) --- 867 return sprintf(buf, "%d\n", disk->minors); 868} 869 870static ssize_t disk_ext_range_show(struct device *dev, 871 struct device_attribute *attr, char *buf) 872{ 873 struct gendisk *disk = dev_to_disk(dev); 874 | 441 } 442 443 ret = disk_alloc_events(disk); 444 if (ret) 445 goto out_free_ext_minor; 446 447 /* delay uevents, until we scanned partition table */ 448 dev_set_uevent_suppress(ddev, 1); --- 417 unchanged lines hidden (view full) --- 866 return sprintf(buf, "%d\n", disk->minors); 867} 868 869static ssize_t disk_ext_range_show(struct device *dev, 870 struct device_attribute *attr, char *buf) 871{ 872 struct gendisk *disk = dev_to_disk(dev); 873 |
875 return sprintf(buf, "%d\n", disk_max_parts(disk)); | 874 return sprintf(buf, "%d\n", 875 (disk->flags & GENHD_FL_NO_PART) ? 1 : DISK_MAX_PARTS); |
876} 877 878static ssize_t disk_removable_show(struct device *dev, 879 struct device_attribute *attr, char *buf) 880{ 881 struct gendisk *disk = dev_to_disk(dev); 882 883 return sprintf(buf, "%d\n", --- 542 unchanged lines hidden --- | 876} 877 878static ssize_t disk_removable_show(struct device *dev, 879 struct device_attribute *attr, char *buf) 880{ 881 struct gendisk *disk = dev_to_disk(dev); 882 883 return sprintf(buf, "%d\n", --- 542 unchanged lines hidden --- |