Lines Matching refs:part
22 #define part_to_dev(part) (&((part)->__dev)) argument
160 struct hd_struct __rcu *part[]; member
205 static inline struct gendisk *part_to_disk(struct hd_struct *part) in part_to_disk() argument
207 if (likely(part)) { in part_to_disk()
208 if (part->partno) in part_to_disk()
209 return dev_to_disk(part_to_dev(part)->parent); in part_to_disk()
211 return dev_to_disk(part_to_dev(part)); in part_to_disk()
258 static inline dev_t part_devt(struct hd_struct *part) in part_devt() argument
260 return part_to_dev(part)->devt; in part_devt()
265 static inline void disk_put_part(struct hd_struct *part) in disk_put_part() argument
267 if (likely(part)) in disk_put_part()
268 put_device(part_to_dev(part)); in disk_put_part()
281 struct hd_struct *part; member
310 #define __part_stat_add(cpu, part, field, addnd) \ argument
311 (per_cpu_ptr((part)->dkstats, (cpu))->field += (addnd))
313 #define part_stat_read(part, field) \ argument
315 typeof((part)->dkstats->field) res = 0; \
318 res += per_cpu_ptr((part)->dkstats, _cpu)->field; \
322 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
327 memset(per_cpu_ptr(part->dkstats, i), value, in part_stat_set_all()
331 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
333 part->dkstats = alloc_percpu(struct disk_stats); in init_part_stats()
334 if (!part->dkstats) in init_part_stats()
339 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
341 free_percpu(part->dkstats); in free_part_stats()
348 #define __part_stat_add(cpu, part, field, addnd) \ argument
349 ((part)->dkstats.field += addnd)
351 #define part_stat_read(part, field) ((part)->dkstats.field) argument
353 static inline void part_stat_set_all(struct hd_struct *part, int value) in part_stat_set_all() argument
355 memset(&part->dkstats, value, sizeof(struct disk_stats)); in part_stat_set_all()
358 static inline int init_part_stats(struct hd_struct *part) in init_part_stats() argument
363 static inline void free_part_stats(struct hd_struct *part) in free_part_stats() argument
369 #define part_stat_add(cpu, part, field, addnd) do { \ argument
370 __part_stat_add((cpu), (part), field, addnd); \
371 if ((part)->partno) \
372 __part_stat_add((cpu), &part_to_disk((part))->part0, \
383 static inline void part_inc_in_flight(struct hd_struct *part, int rw) in part_inc_in_flight() argument
385 atomic_inc(&part->in_flight[rw]); in part_inc_in_flight()
386 if (part->partno) in part_inc_in_flight()
387 atomic_inc(&part_to_disk(part)->part0.in_flight[rw]); in part_inc_in_flight()
390 static inline void part_dec_in_flight(struct hd_struct *part, int rw) in part_dec_in_flight() argument
392 atomic_dec(&part->in_flight[rw]); in part_dec_in_flight()
393 if (part->partno) in part_dec_in_flight()
394 atomic_dec(&part_to_disk(part)->part0.in_flight[rw]); in part_dec_in_flight()
397 static inline int part_in_flight(struct hd_struct *part) in part_in_flight() argument
399 return atomic_read(&part->in_flight[0]) + atomic_read(&part->in_flight[1]); in part_in_flight()
410 static inline void free_part_info(struct hd_struct *part) in free_part_info() argument
412 kfree(part->info); in free_part_info()
416 extern void part_round_stats(int cpu, struct hd_struct *part);
601 extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
643 static inline void hd_ref_init(struct hd_struct *part) in hd_ref_init() argument
645 atomic_set(&part->ref, 1); in hd_ref_init()
649 static inline void hd_struct_get(struct hd_struct *part) in hd_struct_get() argument
651 atomic_inc(&part->ref); in hd_struct_get()
655 static inline int hd_struct_try_get(struct hd_struct *part) in hd_struct_try_get() argument
657 return atomic_inc_not_zero(&part->ref); in hd_struct_try_get()
660 static inline void hd_struct_put(struct hd_struct *part) in hd_struct_put() argument
662 if (atomic_dec_and_test(&part->ref)) in hd_struct_put()
663 __delete_partition(part); in hd_struct_put()
675 static inline sector_t part_nr_sects_read(struct hd_struct *part) in part_nr_sects_read() argument
681 seq = read_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_read()
682 nr_sects = part->nr_sects; in part_nr_sects_read()
683 } while (read_seqcount_retry(&part->nr_sects_seq, seq)); in part_nr_sects_read()
689 nr_sects = part->nr_sects; in part_nr_sects_read()
693 return part->nr_sects; in part_nr_sects_read()
702 static inline void part_nr_sects_write(struct hd_struct *part, sector_t size) in part_nr_sects_write() argument
705 write_seqcount_begin(&part->nr_sects_seq); in part_nr_sects_write()
706 part->nr_sects = size; in part_nr_sects_write()
707 write_seqcount_end(&part->nr_sects_seq); in part_nr_sects_write()
710 part->nr_sects = size; in part_nr_sects_write()
713 part->nr_sects = size; in part_nr_sects_write()