Lines Matching refs:holder
557 static bool bd_may_claim(struct block_device *bdev, void *holder, in bd_may_claim() argument
568 if (bdev->bd_holder == holder) { in bd_may_claim()
599 int bd_prepare_to_claim(struct block_device *bdev, void *holder, in bd_prepare_to_claim() argument
604 if (WARN_ON_ONCE(!holder)) in bd_prepare_to_claim()
609 if (!bd_may_claim(bdev, holder, hops)) { in bd_prepare_to_claim()
627 whole->bd_claiming = holder; in bd_prepare_to_claim()
633 static void bd_clear_claiming(struct block_device *whole, void *holder) in bd_clear_claiming() argument
637 BUG_ON(whole->bd_claiming != holder); in bd_clear_claiming()
651 static void bd_finish_claiming(struct block_device *bdev, void *holder, in bd_finish_claiming() argument
657 BUG_ON(!bd_may_claim(bdev, holder, hops)); in bd_finish_claiming()
666 bdev->bd_holder = holder; in bd_finish_claiming()
669 bd_clear_claiming(whole, holder); in bd_finish_claiming()
682 void bd_abort_claiming(struct block_device *bdev, void *holder) in bd_abort_claiming() argument
685 bd_clear_claiming(bdev_whole(bdev), holder); in bd_abort_claiming()
690 static void bd_end_claim(struct block_device *bdev, void *holder) in bd_end_claim() argument
700 WARN_ON_ONCE(bdev->bd_holder != holder); in bd_end_claim()
799 int bdev_permission(dev_t dev, blk_mode_t mode, void *holder) in bdev_permission() argument
811 if (mode & BLK_OPEN_RESTRICT_WRITES && !holder) in bdev_permission()
818 if (WARN_ON_ONCE(IS_ERR(holder))) in bdev_permission()
943 int bdev_open(struct block_device *bdev, blk_mode_t mode, void *holder, in bdev_open() argument
950 if (holder) { in bdev_open()
952 ret = bd_prepare_to_claim(bdev, holder, hops); in bdev_open()
978 if (holder) { in bdev_open()
979 bd_finish_claiming(bdev, holder, hops); in bdev_open()
1008 bdev_file->private_data = holder; in bdev_open()
1014 if (holder) in bdev_open()
1015 bd_abort_claiming(bdev, holder); in bdev_open()
1051 struct file *bdev_file_open_by_dev(dev_t dev, blk_mode_t mode, void *holder, in bdev_file_open_by_dev() argument
1059 ret = bdev_permission(dev, mode, holder); in bdev_file_open_by_dev()
1076 ret = bdev_open(bdev, mode, holder, hops, bdev_file); in bdev_file_open_by_dev()
1088 void *holder, in bdev_file_open_by_path() argument
1099 file = bdev_file_open_by_dev(dev, mode, holder, hops); in bdev_file_open_by_path()
1114 void *holder = bdev_file->private_data; in bd_yield_claim() local
1118 if (WARN_ON_ONCE(IS_ERR_OR_NULL(holder))) in bd_yield_claim()
1122 bd_end_claim(bdev, holder); in bd_yield_claim()
1128 void *holder = bdev_file->private_data; in bdev_release() local
1132 if (IS_ERR(holder)) in bdev_release()
1148 if (holder) in bdev_release()