Lines Matching defs:rdev
37 * The struct embedded in rdev is used to serialize IO.
218 static inline int is_badblock(struct md_rdev *rdev, sector_t s, int sectors,
221 if (unlikely(rdev->badblocks.count)) {
222 int rv = badblocks_check(&rdev->badblocks, rdev->data_offset + s,
226 *first_bad -= rdev->data_offset;
231 extern int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
233 extern int rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
434 * rdev superblocks, events
503 void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev);
580 void (*error_handler)(struct mddev *mddev, struct md_rdev *rdev);
581 int (*hot_add_disk) (struct mddev *mddev, struct md_rdev *rdev);
582 int (*hot_remove_disk) (struct mddev *mddev, struct md_rdev *rdev);
634 static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
637 if (!test_bit(Replacement, &rdev->flags) &&
638 !test_bit(Journal, &rdev->flags) &&
640 sprintf(nm, "rd%d", rdev->raid_disk);
641 return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm);
646 static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev)
649 if (!test_bit(Replacement, &rdev->flags) &&
650 !test_bit(Journal, &rdev->flags) &&
652 sprintf(nm, "rd%d", rdev->raid_disk);
658 * iterates through some rdev ringlist. It's safe to remove the
659 * current 'rdev'. Dont touch 'tmp' though.
661 #define rdev_for_each_list(rdev, tmp, head) \
662 list_for_each_entry_safe(rdev, tmp, head, same_set)
667 #define rdev_for_each(rdev, mddev) \
668 list_for_each_entry(rdev, &((mddev)->disks), same_set)
670 #define rdev_for_each_safe(rdev, tmp, mddev) \
671 list_for_each_entry_safe(rdev, tmp, &((mddev)->disks), same_set)
673 #define rdev_for_each_rcu(rdev, mddev) \
674 list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set)
713 extern void md_error(struct mddev *mddev, struct md_rdev *rdev);
717 extern void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
720 extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
726 extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev);
730 extern int md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev);
738 extern int md_rdev_init(struct md_rdev *rdev);
739 extern void md_rdev_clear(struct md_rdev *rdev);
749 extern void md_kick_rdev_from_array(struct md_rdev * rdev);
750 extern void mddev_create_serial_pool(struct mddev *mddev, struct md_rdev *rdev,
752 extern void mddev_destroy_serial_pool(struct mddev *mddev, struct md_rdev *rdev,
757 static inline bool is_mddev_broken(struct md_rdev *rdev, const char *md_type)
759 int flags = rdev->bdev->bd_disk->flags;
762 if (!test_and_set_bit(MD_BROKEN, &rdev->mddev->flags))
764 mdname(rdev->mddev), md_type);
770 static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
772 int faulty = test_bit(Faulty, &rdev->flags);
773 if (atomic_dec_and_test(&rdev->nr_pending) && faulty) {