Lines Matching refs:bdev
13 static struct bd_holder_disk *bd_find_holder_disk(struct block_device *bdev,
19 if (holder->holder_dir == bdev->bd_holder_dir)
35 * bd_link_disk_holder - create symlinks between holding disk and slave bdev
36 * @bdev: the claimed slave bdev
43 * - from "slaves" directory of the holder @disk to the claimed @bdev
44 * - from "holders" directory of the @bdev to the holder @disk
52 * The caller must have claimed @bdev before calling this function and
53 * ensure that both @bdev and @disk are valid during the creation and
62 int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk)
70 if (bdev->bd_disk == disk)
77 mutex_lock(&bdev->bd_disk->open_mutex);
78 if (!disk_live(bdev->bd_disk)) {
79 mutex_unlock(&bdev->bd_disk->open_mutex);
82 kobject_get(bdev->bd_holder_dir);
83 mutex_unlock(&bdev->bd_disk->open_mutex);
86 WARN_ON_ONCE(!bdev->bd_holder);
88 holder = bd_find_holder_disk(bdev, disk);
90 kobject_put(bdev->bd_holder_dir);
103 holder->holder_dir = bdev->bd_holder_dir;
105 ret = add_symlink(disk->slave_dir, bdev_kobj(bdev));
108 ret = add_symlink(bdev->bd_holder_dir, &disk_to_dev(disk)->kobj);
117 del_symlink(disk->slave_dir, bdev_kobj(bdev));
123 kobject_put(bdev->bd_holder_dir);
130 * @bdev: the calimed slave bdev
138 void bd_unlink_disk_holder(struct block_device *bdev, struct gendisk *disk)
146 holder = bd_find_holder_disk(bdev, disk);
148 del_symlink(disk->slave_dir, bdev_kobj(bdev));