Lines Matching refs:holder
16 struct bd_holder_disk *holder; in bd_find_holder_disk() local
18 list_for_each_entry(holder, &disk->slave_bdevs, list) in bd_find_holder_disk()
19 if (holder->holder_dir == bdev->bd_holder_dir) in bd_find_holder_disk()
20 return holder; in bd_find_holder_disk()
64 struct bd_holder_disk *holder; in bd_link_disk_holder() local
88 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
89 if (holder) { in bd_link_disk_holder()
91 holder->refcnt++; in bd_link_disk_holder()
95 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
96 if (!holder) { in bd_link_disk_holder()
101 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
102 holder->refcnt = 1; in bd_link_disk_holder()
103 holder->holder_dir = bdev->bd_holder_dir; in bd_link_disk_holder()
111 list_add(&holder->list, &disk->slave_bdevs); in bd_link_disk_holder()
119 kfree(holder); in bd_link_disk_holder()
140 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
146 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
147 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
149 del_symlink(holder->holder_dir, &disk_to_dev(disk)->kobj); in bd_unlink_disk_holder()
150 kobject_put(holder->holder_dir); in bd_unlink_disk_holder()
151 list_del_init(&holder->list); in bd_unlink_disk_holder()
152 kfree(holder); in bd_unlink_disk_holder()