Lines Matching refs:holder
540 static bool bd_may_claim(struct block_device *bdev, void *holder, in bd_may_claim() argument
551 if (bdev->bd_holder == holder) { in bd_may_claim()
582 int bd_prepare_to_claim(struct block_device *bdev, void *holder, in bd_prepare_to_claim() argument
587 if (WARN_ON_ONCE(!holder)) in bd_prepare_to_claim()
592 if (!bd_may_claim(bdev, holder, hops)) { in bd_prepare_to_claim()
610 whole->bd_claiming = holder; in bd_prepare_to_claim()
616 static void bd_clear_claiming(struct block_device *whole, void *holder) in bd_clear_claiming() argument
620 BUG_ON(whole->bd_claiming != holder); in bd_clear_claiming()
634 static void bd_finish_claiming(struct block_device *bdev, void *holder, in bd_finish_claiming() argument
640 BUG_ON(!bd_may_claim(bdev, holder, hops)); in bd_finish_claiming()
649 bdev->bd_holder = holder; in bd_finish_claiming()
652 bd_clear_claiming(whole, holder); in bd_finish_claiming()
665 void bd_abort_claiming(struct block_device *bdev, void *holder) in bd_abort_claiming() argument
668 bd_clear_claiming(bdev_whole(bdev), holder); in bd_abort_claiming()
673 static void bd_end_claim(struct block_device *bdev, void *holder) in bd_end_claim() argument
683 WARN_ON_ONCE(bdev->bd_holder != holder); in bd_end_claim()
782 int bdev_permission(dev_t dev, blk_mode_t mode, void *holder) in bdev_permission() argument
794 if (mode & BLK_OPEN_RESTRICT_WRITES && !holder) in bdev_permission()
801 if (WARN_ON_ONCE(IS_ERR(holder))) in bdev_permission()
926 int bdev_open(struct block_device *bdev, blk_mode_t mode, void *holder, in bdev_open() argument
933 if (holder) { in bdev_open()
935 ret = bd_prepare_to_claim(bdev, holder, hops); in bdev_open()
961 if (holder) { in bdev_open()
962 bd_finish_claiming(bdev, holder, hops); in bdev_open()
991 bdev_file->private_data = holder; in bdev_open()
997 if (holder) in bdev_open()
998 bd_abort_claiming(bdev, holder); in bdev_open()
1034 struct file *bdev_file_open_by_dev(dev_t dev, blk_mode_t mode, void *holder, in bdev_file_open_by_dev() argument
1042 ret = bdev_permission(dev, mode, holder); in bdev_file_open_by_dev()
1059 ret = bdev_open(bdev, mode, holder, hops, bdev_file); in bdev_file_open_by_dev()
1071 void *holder, in bdev_file_open_by_path() argument
1082 file = bdev_file_open_by_dev(dev, mode, holder, hops); in bdev_file_open_by_path()
1097 void *holder = bdev_file->private_data; in bd_yield_claim() local
1101 if (WARN_ON_ONCE(IS_ERR_OR_NULL(holder))) in bd_yield_claim()
1105 bd_end_claim(bdev, holder); in bd_yield_claim()
1111 void *holder = bdev_file->private_data; in bdev_release() local
1115 if (IS_ERR(holder)) in bdev_release()
1131 if (holder) in bdev_release()