Lines Matching defs:rdev
37 * The struct embedded in rdev is used to serialize IO.
214 Holder, /* rdev is used as holder while opening
219 static inline int is_badblock(struct md_rdev *rdev, sector_t s, int sectors,
222 if (unlikely(rdev->badblocks.count)) {
223 int rv = badblocks_check(&rdev->badblocks, rdev->data_offset + s,
227 *first_bad -= rdev->data_offset;
232 extern int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
234 extern int rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
460 * rdev superblocks, events
530 void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev);
536 * Temporarily store rdev that will be finally removed when
635 void (*error_handler)(struct mddev *mddev, struct md_rdev *rdev);
636 int (*hot_add_disk) (struct mddev *mddev, struct md_rdev *rdev);
637 int (*hot_remove_disk) (struct mddev *mddev, struct md_rdev *rdev);
690 static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
693 if (!test_bit(Replacement, &rdev->flags) &&
694 !test_bit(Journal, &rdev->flags) &&
696 sprintf(nm, "rd%d", rdev->raid_disk);
697 return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm);
702 static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev)
705 if (!test_bit(Replacement, &rdev->flags) &&
706 !test_bit(Journal, &rdev->flags) &&
708 sprintf(nm, "rd%d", rdev->raid_disk);
714 * iterates through some rdev ringlist. It's safe to remove the
715 * current 'rdev'. Dont touch 'tmp' though.
717 #define rdev_for_each_list(rdev, tmp, head) \
718 list_for_each_entry_safe(rdev, tmp, head, same_set)
723 #define rdev_for_each(rdev, mddev) \
724 list_for_each_entry(rdev, &((mddev)->disks), same_set)
726 #define rdev_for_each_safe(rdev, tmp, mddev) \
727 list_for_each_entry_safe(rdev, tmp, &((mddev)->disks), same_set)
729 #define rdev_for_each_rcu(rdev, mddev) \
730 list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set)
776 extern void md_error(struct mddev *mddev, struct md_rdev *rdev);
778 void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
783 extern void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
786 extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
791 extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev);
795 extern int md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev);
805 extern int md_rdev_init(struct md_rdev *rdev);
806 extern void md_rdev_clear(struct md_rdev *rdev);
814 extern void mddev_create_serial_pool(struct mddev *mddev, struct md_rdev *rdev,
816 extern void mddev_destroy_serial_pool(struct mddev *mddev, struct md_rdev *rdev,
821 static inline bool is_rdev_broken(struct md_rdev *rdev)
823 return !disk_live(rdev->bdev->bd_disk);
826 static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
828 int faulty = test_bit(Faulty, &rdev->flags);
829 if (atomic_dec_and_test(&rdev->nr_pending) && faulty) {