Lines Matching refs:part
23 #define part_to_dev(part) (&((part)->__dev)) argument
161 struct hd_struct __rcu *part[]; member
218 static inline struct gendisk *part_to_disk(struct hd_struct *part) in part_to_disk() argument
220 if (likely(part)) { in part_to_disk()
221 if (part->partno) in part_to_disk()
222 return dev_to_disk(part_to_dev(part)->parent); in part_to_disk()
224 return dev_to_disk(part_to_dev(part)); in part_to_disk()
271 static inline dev_t part_devt(struct hd_struct *part) in part_devt() argument
273 return part_to_dev(part)->devt; in part_devt()
278 static inline void disk_put_part(struct hd_struct *part) in disk_put_part() argument
280 if (likely(part)) in disk_put_part()
281 put_device(part_to_dev(part)); in disk_put_part()
294 struct hd_struct *part; member
323 #define __part_stat_add(cpu, part, field, addnd) \ argument
324 (per_cpu_ptr((part)->dkstats, (cpu))->field += (addnd))
326 #define part_stat_read(part, field) \ argument
328 typeof((part)->dkstats->field) res = 0; \
331 res += per_cpu_ptr((part)->dkstats, _cpu)->field; \
335 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
340 memset(per_cpu_ptr(part->dkstats, i), value, in part_stat_set_all()
344 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
346 part->dkstats = alloc_percpu(struct disk_stats); in init_part_stats()
347 if (!part->dkstats) in init_part_stats()
352 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
354 free_percpu(part->dkstats); in free_part_stats()
361 #define __part_stat_add(cpu, part, field, addnd) \ argument
362 ((part)->dkstats.field += addnd)
364 #define part_stat_read(part, field) ((part)->dkstats.field) argument
366 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
368 memset(&part->dkstats, value, sizeof(struct disk_stats)); in part_stat_set_all()
371 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
376 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
382 #define part_stat_add(cpu, part, field, addnd) do { \ argument
383 __part_stat_add((cpu), (part), field, addnd); \
384 if ((part)->partno) \
385 __part_stat_add((cpu), &part_to_disk((part))->part0, \
396 static inline void part_inc_in_flight(struct hd_struct *part, int rw) in part_inc_in_flight() argument
398 atomic_inc(&part->in_flight[rw]); in part_inc_in_flight()
399 if (part->partno) in part_inc_in_flight()
400 atomic_inc(&part_to_disk(part)->part0.in_flight[rw]); in part_inc_in_flight()
403 static inline void part_dec_in_flight(struct hd_struct *part, int rw) in part_dec_in_flight() argument
405 atomic_dec(&part->in_flight[rw]); in part_dec_in_flight()
406 if (part->partno) in part_dec_in_flight()
407 atomic_dec(&part_to_disk(part)->part0.in_flight[rw]); in part_dec_in_flight()
410 static inline int part_in_flight(struct hd_struct *part) in part_in_flight() argument
412 return atomic_read(&part->in_flight[0]) + atomic_read(&part->in_flight[1]); in part_in_flight()
423 static inline void free_part_info(struct hd_struct *part) in free_part_info() argument
425 kfree(part->info); in free_part_info()
429 extern void part_round_stats(int cpu, struct hd_struct *part);
614 extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
656 static inline int hd_ref_init(struct hd_struct *part) in hd_ref_init() argument
658 if (percpu_ref_init(&part->ref, __delete_partition, 0, in hd_ref_init()
664 static inline void hd_struct_get(struct hd_struct *part) in hd_struct_get() argument
666 percpu_ref_get(&part->ref); in hd_struct_get()
669 static inline int hd_struct_try_get(struct hd_struct *part) in hd_struct_try_get() argument
671 return percpu_ref_tryget_live(&part->ref); in hd_struct_try_get()
674 static inline void hd_struct_put(struct hd_struct *part) in hd_struct_put() argument
676 percpu_ref_put(&part->ref); in hd_struct_put()
679 static inline void hd_struct_kill(struct hd_struct *part) in hd_struct_kill() argument
681 percpu_ref_kill(&part->ref); in hd_struct_kill()
684 static inline void hd_free_part(struct hd_struct *part) in hd_free_part() argument
686 free_part_stats(part); in hd_free_part()
687 free_part_info(part); in hd_free_part()
688 percpu_ref_exit(&part->ref); in hd_free_part()
700 static inline sector_t part_nr_sects_read(struct hd_struct *part) in part_nr_sects_read() argument
706 seq = read_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_read()
707 nr_sects = part->nr_sects; in part_nr_sects_read()
708 } while (read_seqcount_retry(&part->nr_sects_seq, seq)); in part_nr_sects_read()
714 nr_sects = part->nr_sects; in part_nr_sects_read()
718 return part->nr_sects; in part_nr_sects_read()
727 static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) in part_nr_sects_write() argument
730 write_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_write()
731 part->nr_sects = size; in part_nr_sects_write()
732 write_seqcount_end(&part->nr_sects_seq); in part_nr_sects_write()
735 part->nr_sects = size; in part_nr_sects_write()
738 part->nr_sects = size; in part_nr_sects_write()