Lines Matching refs:holder
1032 void *holder) in bd_may_claim() argument
1034 if (bdev->bd_holder == holder) in bd_may_claim()
1063 void *holder) in bd_prepare_to_claim() argument
1068 if (!bd_may_claim(bdev, whole, holder)) { in bd_prepare_to_claim()
1086 whole->bd_claiming = holder; in bd_prepare_to_claim()
1113 static void bd_clear_claiming(struct block_device *whole, void *holder) in bd_clear_claiming() argument
1117 BUG_ON(whole->bd_claiming != holder); in bd_clear_claiming()
1132 struct block_device *whole, void *holder) in bd_finish_claiming() argument
1135 BUG_ON(!bd_may_claim(bdev, whole, holder)); in bd_finish_claiming()
1143 bdev->bd_holder = holder; in bd_finish_claiming()
1144 bd_clear_claiming(whole, holder); in bd_finish_claiming()
1159 void *holder) in bd_abort_claiming() argument
1162 bd_clear_claiming(whole, holder); in bd_abort_claiming()
1177 struct bd_holder_disk *holder; in bd_find_holder_disk() local
1179 list_for_each_entry(holder, &bdev->bd_holder_disks, list) in bd_find_holder_disk()
1180 if (holder->disk == disk) in bd_find_holder_disk()
1181 return holder; in bd_find_holder_disk()
1225 struct bd_holder_disk *holder; in bd_link_disk_holder() local
1236 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
1237 if (holder) { in bd_link_disk_holder()
1238 holder->refcnt++; in bd_link_disk_holder()
1242 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
1243 if (!holder) { in bd_link_disk_holder()
1248 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
1249 holder->disk = disk; in bd_link_disk_holder()
1250 holder->refcnt = 1; in bd_link_disk_holder()
1265 list_add(&holder->list, &bdev->bd_holder_disks); in bd_link_disk_holder()
1271 kfree(holder); in bd_link_disk_holder()
1290 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
1294 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
1296 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
1301 list_del_init(&holder->list); in bd_unlink_disk_holder()
1302 kfree(holder); in bd_unlink_disk_holder()
1443 static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder, in __blkdev_get() argument
1468 WARN_ON_ONCE(!holder); in __blkdev_get()
1473 ret = bd_prepare_to_claim(bdev, claiming, holder); in __blkdev_get()
1555 bd_finish_claiming(bdev, claiming, holder); in __blkdev_get()
1589 bd_abort_claiming(bdev, claiming, holder); in __blkdev_get()
1622 static int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder) in blkdev_get() argument
1634 ret =__blkdev_get(bdev, mode, holder, 0); in blkdev_get()
1662 void *holder) in blkdev_get_by_path() argument
1671 err = blkdev_get(bdev, mode, holder); in blkdev_get_by_path()
1706 struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder) in blkdev_get_by_dev() argument
1715 err = blkdev_get(bdev, mode, holder); in blkdev_get_by_dev()