Lines Matching refs:whole

725 static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,  in bd_may_claim()  argument
735 else if (whole->bd_holder == bd_may_claim) in bd_may_claim()
737 else if (whole->bd_holder != NULL) in bd_may_claim()
762 struct block_device *whole, void *holder) in bd_prepare_to_claim() argument
766 if (!bd_may_claim(bdev, whole, holder)) in bd_prepare_to_claim()
770 if (whole->bd_claiming) { in bd_prepare_to_claim()
771 wait_queue_head_t *wq = bit_waitqueue(&whole->bd_claiming, 0); in bd_prepare_to_claim()
813 struct block_device *whole; in bd_start_claiming() local
835 whole = bdget_disk(disk, 0); in bd_start_claiming()
837 whole = bdgrab(bdev); in bd_start_claiming()
841 if (!whole) in bd_start_claiming()
847 err = bd_prepare_to_claim(bdev, whole, holder); in bd_start_claiming()
849 whole->bd_claiming = holder; in bd_start_claiming()
851 return whole; in bd_start_claiming()
854 bdput(whole); in bd_start_claiming()
1220 struct block_device *whole; in __blkdev_get() local
1221 whole = bdget_disk(disk, 0); in __blkdev_get()
1223 if (!whole) in __blkdev_get()
1226 ret = __blkdev_get(whole, mode, 1); in __blkdev_get()
1229 bdev->bd_contains = whole; in __blkdev_get()
1311 struct block_device *whole = NULL; in blkdev_get() local
1317 whole = bd_start_claiming(bdev, holder); in blkdev_get()
1318 if (IS_ERR(whole)) { in blkdev_get()
1320 return PTR_ERR(whole); in blkdev_get()
1326 if (whole) { in blkdev_get()
1327 struct gendisk *disk = whole->bd_disk; in blkdev_get()
1334 BUG_ON(!bd_may_claim(bdev, whole, holder)); in blkdev_get()
1341 whole->bd_holders++; in blkdev_get()
1342 whole->bd_holder = bd_may_claim; in blkdev_get()
1348 BUG_ON(whole->bd_claiming != holder); in blkdev_get()
1349 whole->bd_claiming = NULL; in blkdev_get()
1350 wake_up_bit(&whole->bd_claiming, 0); in blkdev_get()
1368 bdput(whole); in blkdev_get()