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->holder_dir == bdev->bd_holder_dir) in bd_find_holder_disk()
18 return holder; in bd_find_holder_disk()
62 struct bd_holder_disk *holder; in bd_link_disk_holder() local
86 holder = bd_find_holder_disk(bdev, disk); in bd_link_disk_holder()
87 if (holder) { in bd_link_disk_holder()
89 holder->refcnt++; in bd_link_disk_holder()
93 holder = kzalloc(sizeof(*holder), GFP_KERNEL); in bd_link_disk_holder()
94 if (!holder) { in bd_link_disk_holder()
99 INIT_LIST_HEAD(&holder->list); in bd_link_disk_holder()
100 holder->refcnt = 1; in bd_link_disk_holder()
101 holder->holder_dir = bdev->bd_holder_dir; in bd_link_disk_holder()
109 list_add(&holder->list, &disk->slave_bdevs); in bd_link_disk_holder()
117 kfree(holder); in bd_link_disk_holder()
138 struct bd_holder_disk *holder; in bd_unlink_disk_holder() local
144 holder = bd_find_holder_disk(bdev, disk); in bd_unlink_disk_holder()
145 if (!WARN_ON_ONCE(holder == NULL) && !--holder->refcnt) { in bd_unlink_disk_holder()
147 del_symlink(holder->holder_dir, &disk_to_dev(disk)->kobj); in bd_unlink_disk_holder()
148 kobject_put(holder->holder_dir); in bd_unlink_disk_holder()
149 list_del_init(&holder->list); in bd_unlink_disk_holder()
150 kfree(holder); in bd_unlink_disk_holder()