Lines Matching refs:holder
1046 void *holder) in bd_may_claim() argument
1048 if (bdev->bd_holder == holder) in bd_may_claim()
1077 void *holder) in bd_prepare_to_claim() argument
1082 if (!bd_may_claim(bdev, whole, holder)) { in bd_prepare_to_claim()
1100 whole->bd_claiming = holder; in bd_prepare_to_claim()
1127 static void bd_clear_claiming(struct block_device *whole, void *holder) in bd_clear_claiming() argument
1131 BUG_ON(whole->bd_claiming != holder); in bd_clear_claiming()
1146 struct block_device *whole, void *holder) in bd_finish_claiming() argument
1149 BUG_ON(!bd_may_claim(bdev, whole, holder)); in bd_finish_claiming()
1157 bdev->bd_holder = holder; in bd_finish_claiming()
1158 bd_clear_claiming(whole, holder); in bd_finish_claiming()
1173 void *holder) in bd_abort_claiming() argument
1176 bd_clear_claiming(whole, holder); in bd_abort_claiming()
1191 struct bd_holder_disk *holder; in bd_find_holder_disk() local
1193 list_for_each_entry(holder, &bdev->bd_holder_disks, list) in bd_find_holder_disk()
1194 if (holder->disk == disk) in bd_find_holder_disk()
1195 return holder; in bd_find_holder_disk()
1239 struct bd_holder_disk *holder; in bd_link_disk_holder() local
1250 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
1251 if (holder) { in bd_link_disk_holder()
1252 holder->refcnt++; in bd_link_disk_holder()
1256 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
1257 if (!holder) { in bd_link_disk_holder()
1262 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
1263 holder->disk = disk; in bd_link_disk_holder()
1264 holder->refcnt = 1; in bd_link_disk_holder()
1279 list_add(&holder->list, &bdev->bd_holder_disks); in bd_link_disk_holder()
1285 kfree(holder); in bd_link_disk_holder()
1304 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
1308 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
1310 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
1315 list_del_init(&holder->list); in bd_unlink_disk_holder()
1316 kfree(holder); in bd_unlink_disk_holder()
1460 static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder, in __blkdev_get() argument
1485 WARN_ON_ONCE(!holder); in __blkdev_get()
1490 ret = bd_prepare_to_claim(bdev, claiming, holder); in __blkdev_get()
1572 bd_finish_claiming(bdev, claiming, holder); in __blkdev_get()
1606 bd_abort_claiming(bdev, claiming, holder); in __blkdev_get()
1639 static int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder) in blkdev_get() argument
1651 ret =__blkdev_get(bdev, mode, holder, 0); in blkdev_get()
1679 void *holder) in blkdev_get_by_path() argument
1688 err = blkdev_get(bdev, mode, holder); in blkdev_get_by_path()
1723 struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder) in blkdev_get_by_dev() argument
1732 err = blkdev_get(bdev, mode, holder); in blkdev_get_by_dev()