Lines Matching refs:holder
14 struct bd_holder_disk *holder; in bd_find_holder_disk() local
16 list_for_each_entry(holder, &disk->slave_bdevs, list) in bd_find_holder_disk()
17 if (holder->bdev == bdev) in bd_find_holder_disk()
18 return holder; in bd_find_holder_disk()
75 struct bd_holder_disk *holder; in bd_link_disk_holder() local
82 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
83 if (holder) { in bd_link_disk_holder()
84 holder->refcnt++; in bd_link_disk_holder()
88 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
89 if (!holder) { in bd_link_disk_holder()
94 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
95 holder->bdev = bdev; in bd_link_disk_holder()
96 holder->refcnt = 1; in bd_link_disk_holder()
100 kfree(holder); in bd_link_disk_holder()
105 list_add(&holder->list, &disk->slave_bdevs); in bd_link_disk_holder()
137 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
140 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
141 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
145 list_del_init(&holder->list); in bd_unlink_disk_holder()
146 kfree(holder); in bd_unlink_disk_holder()
154 struct bd_holder_disk *holder; in bd_register_pending_holders() local
158 list_for_each_entry(holder, &disk->slave_bdevs, list) { in bd_register_pending_holders()
159 ret = __link_disk_holder(holder->bdev, disk); in bd_register_pending_holders()
167 list_for_each_entry_continue_reverse(holder, &disk->slave_bdevs, list) in bd_register_pending_holders()
168 __unlink_disk_holder(holder->bdev, disk); in bd_register_pending_holders()