Lines Matching full:part
251 const struct block_device *part = dev_to_bdev(dev);
253 add_uevent_var(env, "PARTN=%u", part->bd_partno);
254 if (part->bd_meta_info && part->bd_meta_info->volname[0])
255 add_uevent_var(env, "PARTNAME=%s", part->bd_meta_info->volname);
266 void drop_partition(struct block_device *part)
268 lockdep_assert_held(&part->bd_disk->open_mutex);
270 xa_erase(&part->bd_disk->part_tbl, part->bd_partno);
271 kobject_put(part->bd_holder_dir);
273 device_del(&part->bd_device);
274 put_device(&part->bd_device);
277 static void delete_partition(struct block_device *part)
283 remove_inode_hash(part->bd_inode);
284 bdev_mark_dead(part, false);
285 drop_partition(part);
420 struct block_device *part;
425 xa_for_each_start(&disk->part_tbl, idx, part, 1) {
426 if (part->bd_partno != skip_partno &&
427 start < part->bd_start_sect + bdev_nr_sectors(part) &&
428 start + length > part->bd_start_sect) {
442 struct block_device *part;
471 part = add_partition(disk, partno, start, length,
473 ret = PTR_ERR_OR_ZERO(part);
481 struct block_device *part = NULL;
485 part = xa_load(&disk->part_tbl, partno);
486 if (!part)
490 if (atomic_read(&part->bd_openers))
493 delete_partition(part);
503 struct block_device *part = NULL;
507 part = xa_load(&disk->part_tbl, partno);
508 if (!part)
512 if (start != part->bd_start_sect)
519 bdev_set_nr_sectors(part, length);
545 struct block_device *part;
575 part = add_partition(disk, p, from, size, state->parts[p].flags,
577 if (IS_ERR(part) && PTR_ERR(part) != -ENXIO) {
579 disk->disk_name, p, -PTR_ERR(part));
585 md_autodetect_dev(part->bd_dev);
656 struct block_device *part;
671 xa_for_each_start(&disk->part_tbl, idx, part, 1)
672 delete_partition(part);