Lines Matching refs:part

26 #define part_to_dev(part)	(&((part)->__dev))  argument
156 struct hd_struct __rcu *part[]; member
216 static inline struct gendisk *part_to_disk(struct hd_struct *part) in part_to_disk() argument
218 if (likely(part)) { in part_to_disk()
219 if (part->partno) in part_to_disk()
220 return dev_to_disk(part_to_dev(part)->parent); in part_to_disk()
222 return dev_to_disk(part_to_dev(part)); in part_to_disk()
245 static inline dev_t part_devt(struct hd_struct *part) in part_devt() argument
247 return part_to_dev(part)->devt; in part_devt()
253 static inline void disk_put_part(struct hd_struct *part) in disk_put_part() argument
255 if (likely(part)) in disk_put_part()
256 put_device(part_to_dev(part)); in disk_put_part()
269 struct hd_struct *part; member
298 #define __part_stat_add(cpu, part, field, addnd) \ argument
299 (per_cpu_ptr((part)->dkstats, (cpu))->field += (addnd))
301 #define part_stat_read(part, field) \ argument
303 typeof((part)->dkstats->field) res = 0; \
306 res += per_cpu_ptr((part)->dkstats, _cpu)->field; \
310 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
315 memset(per_cpu_ptr(part->dkstats, i), value, in part_stat_set_all()
319 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
321 part->dkstats = alloc_percpu(struct disk_stats); in init_part_stats()
322 if (!part->dkstats) in init_part_stats()
327 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
329 free_percpu(part->dkstats); in free_part_stats()
336 #define __part_stat_add(cpu, part, field, addnd) \ argument
337 ((part)->dkstats.field += addnd)
339 #define part_stat_read(part, field) ((part)->dkstats.field) argument
341 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
343 memset(&part->dkstats, value, sizeof(struct disk_stats)); in part_stat_set_all()
346 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
351 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
357 #define part_stat_read_msecs(part, which) \ argument
358 div_u64(part_stat_read(part, nsecs[which]), NSEC_PER_MSEC)
360 #define part_stat_read_accum(part, field) \ argument
361 (part_stat_read(part, field[STAT_READ]) + \
362 part_stat_read(part, field[STAT_WRITE]) + \
363 part_stat_read(part, field[STAT_DISCARD]))
365 #define part_stat_add(cpu, part, field, addnd) do { \ argument
366 __part_stat_add((cpu), (part), field, addnd); \
367 if ((part)->partno) \
368 __part_stat_add((cpu), &part_to_disk((part))->part0, \
379 void part_in_flight(struct request_queue *q, struct hd_struct *part,
381 void part_in_flight_rw(struct request_queue *q, struct hd_struct *part,
383 void part_dec_in_flight(struct request_queue *q, struct hd_struct *part,
385 void part_inc_in_flight(struct request_queue *q, struct hd_struct *part,
396 static inline void free_part_info(struct hd_struct *part) in free_part_info() argument
398 kfree(part->info); in free_part_info()
402 extern void part_round_stats(struct request_queue *q, int cpu, struct hd_struct *part);
597 extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
657 static inline int hd_ref_init(struct hd_struct *part) in hd_ref_init() argument
659 if (percpu_ref_init(&part->ref, __delete_partition, 0, in hd_ref_init()
665 static inline void hd_struct_get(struct hd_struct *part) in hd_struct_get() argument
667 percpu_ref_get(&part->ref); in hd_struct_get()
670 static inline int hd_struct_try_get(struct hd_struct *part) in hd_struct_try_get() argument
672 return percpu_ref_tryget_live(&part->ref); in hd_struct_try_get()
675 static inline void hd_struct_put(struct hd_struct *part) in hd_struct_put() argument
677 percpu_ref_put(&part->ref); in hd_struct_put()
680 static inline void hd_struct_kill(struct hd_struct *part) in hd_struct_kill() argument
682 percpu_ref_kill(&part->ref); in hd_struct_kill()
685 static inline void hd_free_part(struct hd_struct *part) in hd_free_part() argument
687 free_part_stats(part); in hd_free_part()
688 free_part_info(part); in hd_free_part()
689 percpu_ref_exit(&part->ref); in hd_free_part()
701 static inline sector_t part_nr_sects_read(struct hd_struct *part) in part_nr_sects_read() argument
707 seq = read_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_read()
708 nr_sects = part->nr_sects; in part_nr_sects_read()
709 } while (read_seqcount_retry(&part->nr_sects_seq, seq)); in part_nr_sects_read()
715 nr_sects = part->nr_sects; in part_nr_sects_read()
719 return part->nr_sects; in part_nr_sects_read()
728 static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) in part_nr_sects_write() argument
731 write_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_write()
732 part->nr_sects = size; in part_nr_sects_write()
733 write_seqcount_end(&part->nr_sects_seq); in part_nr_sects_write()
736 part->nr_sects = size; in part_nr_sects_write()
739 part->nr_sects = size; in part_nr_sects_write()