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 ---