Lines Matching refs:part

27 #define part_to_dev(part)	(&((part)->__dev))  argument
164 struct hd_struct __rcu *part[]; member
224 static inline struct gendisk *part_to_disk(struct hd_struct *part) in part_to_disk() argument
226 if (likely(part)) { in part_to_disk()
227 if (part->partno) in part_to_disk()
228 return dev_to_disk(part_to_dev(part)->parent); in part_to_disk()
230 return dev_to_disk(part_to_dev(part)); in part_to_disk()
253 static inline dev_t part_devt(struct hd_struct *part) in part_devt() argument
255 return part_to_dev(part)->devt; in part_devt()
261 static inline void disk_put_part(struct hd_struct *part) in disk_put_part() argument
263 if (likely(part)) in disk_put_part()
264 put_device(part_to_dev(part)); in disk_put_part()
277 struct hd_struct *part; member
306 #define part_stat_get_cpu(part, field, cpu) \ argument
307 (per_cpu_ptr((part)->dkstats, (cpu))->field)
309 #define part_stat_get(part, field) \ argument
310 part_stat_get_cpu(part, field, smp_processor_id())
312 #define part_stat_read(part, field) \ argument
314 typeof((part)->dkstats->field) res = 0; \
317 res += per_cpu_ptr((part)->dkstats, _cpu)->field; \
321 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
326 memset(per_cpu_ptr(part->dkstats, i), value, in part_stat_set_all()
330 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
332 part->dkstats = alloc_percpu(struct disk_stats); in init_part_stats()
333 if (!part->dkstats) in init_part_stats()
338 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
340 free_percpu(part->dkstats); in free_part_stats()
347 #define part_stat_get(part, field) ((part)->dkstats.field) argument
348 #define part_stat_get_cpu(part, field, cpu) part_stat_get(part, field) argument
349 #define part_stat_read(part, field) part_stat_get(part, field) argument
351 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
353 memset(&part->dkstats, value, sizeof(struct disk_stats)); in part_stat_set_all()
356 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
361 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
367 #define part_stat_read_msecs(part, which) \ argument
368 div_u64(part_stat_read(part, nsecs[which]), NSEC_PER_MSEC)
370 #define part_stat_read_accum(part, field) \ argument
371 (part_stat_read(part, field[STAT_READ]) + \
372 part_stat_read(part, field[STAT_WRITE]) + \
373 part_stat_read(part, field[STAT_DISCARD]))
375 #define __part_stat_add(part, field, addnd) \ argument
376 (part_stat_get(part, field) += (addnd))
378 #define part_stat_add(part, field, addnd) do { \ argument
379 __part_stat_add((part), field, addnd); \
380 if ((part)->partno) \
381 __part_stat_add(&part_to_disk((part))->part0, \
401 unsigned int part_in_flight(struct request_queue *q, struct hd_struct *part);
402 void part_in_flight_rw(struct request_queue *q, struct hd_struct *part,
404 void part_dec_in_flight(struct request_queue *q, struct hd_struct *part,
406 void part_inc_in_flight(struct request_queue *q, struct hd_struct *part,
417 static inline void free_part_info(struct hd_struct *part) in free_part_info() argument
419 kfree(part->info); in free_part_info()
422 void update_io_ticks(struct hd_struct *part, unsigned long now);
618 extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
679 static inline int hd_ref_init(struct hd_struct *part) in hd_ref_init() argument
681 if (percpu_ref_init(&part->ref, __delete_partition, 0, in hd_ref_init()
687 static inline void hd_struct_get(struct hd_struct *part) in hd_struct_get() argument
689 percpu_ref_get(&part->ref); in hd_struct_get()
692 static inline int hd_struct_try_get(struct hd_struct *part) in hd_struct_try_get() argument
694 return percpu_ref_tryget_live(&part->ref); in hd_struct_try_get()
697 static inline void hd_struct_put(struct hd_struct *part) in hd_struct_put() argument
699 percpu_ref_put(&part->ref); in hd_struct_put()
702 static inline void hd_struct_kill(struct hd_struct *part) in hd_struct_kill() argument
704 percpu_ref_kill(&part->ref); in hd_struct_kill()
707 static inline void hd_free_part(struct hd_struct *part) in hd_free_part() argument
709 free_part_stats(part); in hd_free_part()
710 free_part_info(part); in hd_free_part()
711 percpu_ref_exit(&part->ref); in hd_free_part()
723 static inline sector_t part_nr_sects_read(struct hd_struct *part) in part_nr_sects_read() argument
729 seq = read_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_read()
730 nr_sects = part->nr_sects; in part_nr_sects_read()
731 } while (read_seqcount_retry(&part->nr_sects_seq, seq)); in part_nr_sects_read()
737 nr_sects = part->nr_sects; in part_nr_sects_read()
741 return part->nr_sects; in part_nr_sects_read()
750 static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) in part_nr_sects_write() argument
753 write_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_write()
754 part->nr_sects = size; in part_nr_sects_write()
755 write_seqcount_end(&part->nr_sects_seq); in part_nr_sects_write()
758 part->nr_sects = size; in part_nr_sects_write()
761 part->nr_sects = size; in part_nr_sects_write()