Lines Matching refs:holder
13 struct bd_holder_disk *holder; in bd_find_holder_disk() local
15 list_for_each_entry(holder, &disk->slave_bdevs, list) in bd_find_holder_disk()
16 if (holder->bdev == bdev) in bd_find_holder_disk()
17 return holder; in bd_find_holder_disk()
74 struct bd_holder_disk *holder; in bd_link_disk_holder() local
85 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
86 if (holder) { in bd_link_disk_holder()
87 holder->refcnt++; in bd_link_disk_holder()
91 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
92 if (!holder) { in bd_link_disk_holder()
97 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
98 holder->bdev = bdev; in bd_link_disk_holder()
99 holder->refcnt = 1; in bd_link_disk_holder()
103 kfree(holder); in bd_link_disk_holder()
108 list_add(&holder->list, &disk->slave_bdevs); in bd_link_disk_holder()
140 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
143 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
144 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
148 list_del_init(&holder->list); in bd_unlink_disk_holder()
149 kfree(holder); in bd_unlink_disk_holder()
157 struct bd_holder_disk *holder; in bd_register_pending_holders() local
161 list_for_each_entry(holder, &disk->slave_bdevs, list) { in bd_register_pending_holders()
162 ret = __link_disk_holder(holder->bdev, disk); in bd_register_pending_holders()
170 list_for_each_entry_continue_reverse(holder, &disk->slave_bdevs, list) in bd_register_pending_holders()
171 __unlink_disk_holder(holder->bdev, disk); in bd_register_pending_holders()