Lines Matching refs:part
48 void part_inc_in_flight(struct request_queue *q, struct hd_struct *part, int rw) in part_inc_in_flight() argument
53 atomic_inc(&part->in_flight[rw]); in part_inc_in_flight()
54 if (part->partno) in part_inc_in_flight()
55 atomic_inc(&part_to_disk(part)->part0.in_flight[rw]); in part_inc_in_flight()
58 void part_dec_in_flight(struct request_queue *q, struct hd_struct *part, int rw) in part_dec_in_flight() argument
63 atomic_dec(&part->in_flight[rw]); in part_dec_in_flight()
64 if (part->partno) in part_dec_in_flight()
65 atomic_dec(&part_to_disk(part)->part0.in_flight[rw]); in part_dec_in_flight()
68 void part_in_flight(struct request_queue *q, struct hd_struct *part, in part_in_flight() argument
72 blk_mq_in_flight(q, part, inflight); in part_in_flight()
76 inflight[0] = atomic_read(&part->in_flight[0]) + in part_in_flight()
77 atomic_read(&part->in_flight[1]); in part_in_flight()
78 if (part->partno) { in part_in_flight()
79 part = &part_to_disk(part)->part0; in part_in_flight()
80 inflight[1] = atomic_read(&part->in_flight[0]) + in part_in_flight()
81 atomic_read(&part->in_flight[1]); in part_in_flight()
85 void part_in_flight_rw(struct request_queue *q, struct hd_struct *part, in part_in_flight_rw() argument
89 blk_mq_in_flight_rw(q, part, inflight); in part_in_flight_rw()
93 inflight[0] = atomic_read(&part->in_flight[0]); in part_in_flight_rw()
94 inflight[1] = atomic_read(&part->in_flight[1]); in part_in_flight_rw()
103 return rcu_dereference(ptbl->part[partno]); in __disk_get_part()
122 struct hd_struct *part; in disk_get_part() local
125 part = __disk_get_part(disk, partno); in disk_get_part()
126 if (part) in disk_get_part()
127 get_device(part_to_dev(part)); in disk_get_part()
130 return part; in disk_get_part()
154 piter->part = NULL; in disk_part_iter_init()
184 disk_put_part(piter->part); in disk_part_iter_next()
185 piter->part = NULL; in disk_part_iter_next()
206 struct hd_struct *part; in disk_part_iter_next() local
208 part = rcu_dereference(ptbl->part[piter->idx]); in disk_part_iter_next()
209 if (!part) in disk_part_iter_next()
211 if (!part_nr_sects_read(part) && in disk_part_iter_next()
217 get_device(part_to_dev(part)); in disk_part_iter_next()
218 piter->part = part; in disk_part_iter_next()
225 return piter->part; in disk_part_iter_next()
240 disk_put_part(piter->part); in disk_part_iter_exit()
241 piter->part = NULL; in disk_part_iter_exit()
245 static inline int sector_in_part(struct hd_struct *part, sector_t sector) in sector_in_part() argument
247 return part->start_sect <= sector && in sector_in_part()
248 sector < part->start_sect + part_nr_sects_read(part); in sector_in_part()
269 struct hd_struct *part; in disk_map_sector_rcu() local
274 part = rcu_dereference(ptbl->last_lookup); in disk_map_sector_rcu()
275 if (part && sector_in_part(part, sector)) in disk_map_sector_rcu()
276 return part; in disk_map_sector_rcu()
279 part = rcu_dereference(ptbl->part[i]); in disk_map_sector_rcu()
281 if (part && sector_in_part(part, sector)) { in disk_map_sector_rcu()
282 rcu_assign_pointer(ptbl->last_lookup, part); in disk_map_sector_rcu()
283 return part; in disk_map_sector_rcu()
474 int blk_alloc_devt(struct hd_struct *part, dev_t *devt) in blk_alloc_devt() argument
476 struct gendisk *disk = part_to_disk(part); in blk_alloc_devt()
480 if (part->partno < disk->minors) { in blk_alloc_devt()
481 *devt = MKDEV(disk->major, disk->first_minor + part->partno); in blk_alloc_devt()
489 idx = idr_alloc(&ext_devt_idr, part, 0, NR_EXT_DEVT, GFP_NOWAIT); in blk_alloc_devt()
575 struct hd_struct *part; in register_disk() local
636 while ((part = disk_part_iter_next(&piter))) in register_disk()
637 kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD); in register_disk()
730 struct hd_struct *part; in del_gendisk() local
743 while ((part = disk_part_iter_next(&piter))) { in del_gendisk()
744 invalidate_partition(disk, part->partno); in del_gendisk()
745 bdev_unhash_inode(part_devt(part)); in del_gendisk()
746 delete_partition(disk, part->partno); in del_gendisk()
829 struct hd_struct *part; in get_gendisk() local
832 part = idr_find(&ext_devt_idr, blk_mangle_minor(MINOR(devt))); in get_gendisk()
833 if (part && get_disk_and_module(part_to_disk(part))) { in get_gendisk()
834 *partno = part->partno; in get_gendisk()
835 disk = part_to_disk(part); in get_gendisk()
875 struct hd_struct *part; in bdget_disk() local
878 part = disk_get_part(disk, partno); in bdget_disk()
879 if (part) in bdget_disk()
880 bdev = bdget(part_devt(part)); in bdget_disk()
881 disk_put_part(part); in bdget_disk()
901 struct hd_struct *part; in printk_all_partitions() local
919 while ((part = disk_part_iter_next(&piter))) { in printk_all_partitions()
920 bool is_part0 = part == &disk->part0; in printk_all_partitions()
923 bdevt_str(part_devt(part), devt_buf), in printk_all_partitions()
924 (unsigned long long)part_nr_sects_read(part) >> 1 in printk_all_partitions()
925 , disk_name(disk, part->partno, name_buf), in printk_all_partitions()
926 part->info ? part->info->uuid : ""); in printk_all_partitions()
1002 struct hd_struct *part; in show_partition() local
1014 while ((part = disk_part_iter_next(&piter))) in show_partition()
1016 MAJOR(part_devt(part)), MINOR(part_devt(part)), in show_partition()
1017 (unsigned long long)part_nr_sects_read(part) >> 1, in show_partition()
1018 disk_name(sgp, part->partno, buf)); in show_partition()
1257 size = sizeof(*new_ptbl) + target * sizeof(new_ptbl->part[0]); in disk_expand_part_tbl()
1265 rcu_assign_pointer(new_ptbl->part[i], old_ptbl->part[i]); in disk_expand_part_tbl()
1390 struct hd_struct *part; in blk_lookup_devt() local
1403 part = disk_get_part(disk, partno); in blk_lookup_devt()
1404 if (part) { in blk_lookup_devt()
1405 devt = part_devt(part); in blk_lookup_devt()
1406 disk_put_part(part); in blk_lookup_devt()
1409 disk_put_part(part); in blk_lookup_devt()
1442 rcu_assign_pointer(ptbl->part[0], &disk->part0); in __alloc_disk_node()
1532 struct hd_struct *part; in set_disk_ro() local
1540 while ((part = disk_part_iter_next(&piter))) in set_disk_ro()
1541 part->policy = flag; in set_disk_ro()