Lines Matching refs:mddev

138 	struct mddev *mddev;		/* RAID array if running */  member
405 struct mddev { struct
618 void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev); argument
684 static inline bool md_is_rdwr(struct mddev *mddev) in md_is_rdwr() argument
686 return (mddev->ro == MD_RDWR); in md_is_rdwr()
689 static inline bool reshape_interrupted(struct mddev *mddev) in reshape_interrupted() argument
692 if (mddev->reshape_position == MaxSector) in reshape_interrupted()
696 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in reshape_interrupted()
700 if (test_bit(MD_RECOVERY_WAIT, &mddev->recovery) || in reshape_interrupted()
701 test_bit(MD_RECOVERY_INTR, &mddev->recovery) || in reshape_interrupted()
702 test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in reshape_interrupted()
708 static inline int __must_check mddev_lock(struct mddev *mddev) in mddev_lock() argument
712 ret = mutex_lock_interruptible(&mddev->reconfig_mutex); in mddev_lock()
717 if (!ret && test_bit(MD_DELETED, &mddev->flags)) { in mddev_lock()
719 mutex_unlock(&mddev->reconfig_mutex); in mddev_lock()
731 static inline void mddev_lock_nointr(struct mddev *mddev) in mddev_lock_nointr() argument
733 mutex_lock(&mddev->reconfig_mutex); in mddev_lock_nointr()
736 static inline int mddev_trylock(struct mddev *mddev) in mddev_trylock() argument
740 ret = mutex_trylock(&mddev->reconfig_mutex); in mddev_trylock()
741 if (ret && test_bit(MD_DELETED, &mddev->flags)) { in mddev_trylock()
743 mutex_unlock(&mddev->reconfig_mutex); in mddev_trylock()
747 extern void mddev_unlock(struct mddev *mddev);
753 bool __must_check (*make_request)(struct mddev *mddev, struct bio *bio);
758 int (*run)(struct mddev *mddev);
760 int (*start)(struct mddev *mddev);
761 void (*free)(struct mddev *mddev, void *priv);
762 void (*status)(struct seq_file *seq, struct mddev *mddev);
766 void (*error_handler)(struct mddev *mddev, struct md_rdev *rdev);
767 int (*hot_add_disk) (struct mddev *mddev, struct md_rdev *rdev);
768 int (*hot_remove_disk) (struct mddev *mddev, struct md_rdev *rdev);
769 int (*spare_active) (struct mddev *mddev);
770 sector_t (*sync_request)(struct mddev *mddev, sector_t sector_nr,
772 int (*resize) (struct mddev *mddev, sector_t sectors);
773 sector_t (*size) (struct mddev *mddev, sector_t sectors, int raid_disks);
774 int (*check_reshape) (struct mddev *mddev);
775 int (*start_reshape) (struct mddev *mddev);
776 void (*finish_reshape) (struct mddev *mddev);
777 void (*update_reshape_pos) (struct mddev *mddev);
778 void (*prepare_suspend) (struct mddev *mddev);
783 void (*quiesce) (struct mddev *mddev, int quiesce);
793 void *(*takeover) (struct mddev *mddev);
795 int (*change_consistency_policy)(struct mddev *mddev, const char *buf);
797 void (*bitmap_sector)(struct mddev *mddev, sector_t *offset,
803 ssize_t (*show)(struct mddev *, char *);
804 ssize_t (*store)(struct mddev *, const char *, size_t);
819 static inline char * mdname (struct mddev * mddev) in mdname() argument
821 return mddev->gendisk ? mddev->gendisk->disk_name : "mdX"; in mdname()
824 static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev) in sysfs_link_rdev() argument
829 mddev->kobj.sd) { in sysfs_link_rdev()
831 return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm); in sysfs_link_rdev()
836 static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev) in sysfs_unlink_rdev() argument
841 mddev->kobj.sd) { in sysfs_unlink_rdev()
843 sysfs_remove_link(&mddev->kobj, nm); in sysfs_unlink_rdev()
857 #define rdev_for_each(rdev, mddev) \ argument
858 list_for_each_entry(rdev, &((mddev)->disks), same_set)
860 #define rdev_for_each_safe(rdev, tmp, mddev) \ argument
861 list_for_each_entry_safe(rdev, tmp, &((mddev)->disks), same_set)
863 #define rdev_for_each_rcu(rdev, mddev) \ argument
864 list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set)
868 struct mddev *mddev; member
877 struct mddev *mddev; member
904 struct mddev *mddev,
906 extern void md_unregister_thread(struct mddev *mddev, struct md_thread __rcu **threadp);
908 extern void md_check_recovery(struct mddev *mddev);
909 extern void md_reap_sync_thread(struct mddev *mddev);
910 extern enum sync_action md_sync_action(struct mddev *mddev);
913 extern void md_write_start(struct mddev *mddev, struct bio *bi);
914 extern void md_write_inc(struct mddev *mddev, struct bio *bi);
915 extern void md_write_end(struct mddev *mddev);
916 extern void md_done_sync(struct mddev *mddev, int blocks);
917 extern void md_sync_error(struct mddev *mddev);
918 extern void md_error(struct mddev *mddev, struct md_rdev *rdev);
919 extern void md_finish_reshape(struct mddev *mddev);
920 void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
922 void md_account_bio(struct mddev *mddev, struct bio **bio);
924 extern bool __must_check md_flush_request(struct mddev *mddev, struct bio *bio);
925 void md_write_metadata(struct mddev *mddev, struct md_rdev *rdev,
928 extern int md_super_wait(struct mddev *mddev);
933 extern void md_allow_write(struct mddev *mddev);
934 extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev);
935 extern void md_set_array_sectors(struct mddev *mddev, sector_t array_sectors);
936 extern int md_check_no_bitmap(struct mddev *mddev);
937 bool mddev_set_bitmap_ops_nosysfs(struct mddev *mddev);
938 int md_bitmap_create_nosysfs(struct mddev *mddev);
939 void md_bitmap_destroy_nosysfs(struct mddev *mddev);
940 extern int md_integrity_register(struct mddev *mddev);
943 extern int mddev_init(struct mddev *mddev);
944 extern void mddev_destroy(struct mddev *mddev);
946 struct mddev *md_alloc(dev_t dev, char *name);
947 void mddev_put(struct mddev *mddev);
948 extern int md_run(struct mddev *mddev);
949 extern int md_start(struct mddev *mddev);
950 extern void md_stop(struct mddev *mddev);
951 extern void md_stop_writes(struct mddev *mddev);
955 extern bool md_handle_request(struct mddev *mddev, struct bio *bio);
956 extern int mddev_suspend(struct mddev *mddev, bool interruptible);
957 extern void mddev_resume(struct mddev *mddev);
958 extern void md_idle_sync_thread(struct mddev *mddev);
959 extern void md_frozen_sync_thread(struct mddev *mddev);
960 extern void md_unfrozen_sync_thread(struct mddev *mddev);
962 extern void md_update_sb(struct mddev *mddev, int force);
963 extern void mddev_create_serial_pool(struct mddev *mddev, struct md_rdev *rdev);
964 extern void mddev_destroy_serial_pool(struct mddev *mddev,
966 struct md_rdev *md_find_rdev_nr_rcu(struct mddev *mddev, int nr);
967 struct md_rdev *md_find_rdev_rcu(struct mddev *mddev, dev_t dev);
974 static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev) in rdev_dec_pending() argument
978 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in rdev_dec_pending()
979 md_wakeup_thread(mddev->thread); in rdev_dec_pending()
983 static inline int mddev_is_clustered(struct mddev *mddev) in mddev_is_clustered() argument
985 return mddev->cluster_info && mddev->bitmap_info.nodes > 1; in mddev_is_clustered()
989 static inline void mddev_clear_unsupported_flags(struct mddev *mddev, in mddev_clear_unsupported_flags() argument
992 mddev->flags &= ~unsupported_flags; in mddev_clear_unsupported_flags()
995 static inline void mddev_check_write_zeroes(struct mddev *mddev, struct bio *bio) in mddev_check_write_zeroes() argument
999 mddev->gendisk->queue->limits.max_write_zeroes_sectors = 0; in mddev_check_write_zeroes()
1002 static inline int mddev_suspend_and_lock(struct mddev *mddev) in mddev_suspend_and_lock() argument
1006 ret = mddev_suspend(mddev, true); in mddev_suspend_and_lock()
1010 ret = mddev_lock(mddev); in mddev_suspend_and_lock()
1012 mddev_resume(mddev); in mddev_suspend_and_lock()
1017 static inline void mddev_suspend_and_lock_nointr(struct mddev *mddev) in mddev_suspend_and_lock_nointr() argument
1019 mddev_suspend(mddev, false); in mddev_suspend_and_lock_nointr()
1020 mddev_lock_nointr(mddev); in mddev_suspend_and_lock_nointr()
1023 static inline void mddev_unlock_and_resume(struct mddev *mddev) in mddev_unlock_and_resume() argument
1025 mddev_unlock(mddev); in mddev_unlock_and_resume()
1026 mddev_resume(mddev); in mddev_unlock_and_resume()
1034 int md_set_array_info(struct mddev *mddev, struct mdu_array_info_s *info);
1035 int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info);
1036 int do_md_run(struct mddev *mddev);
1038 int mddev_stack_rdev_limits(struct mddev *mddev, struct queue_limits *lim,
1040 int mddev_stack_new_rdev(struct mddev *mddev, struct md_rdev *rdev);
1041 void mddev_update_io_opt(struct mddev *mddev, unsigned int nr_stripes);
1048 static inline bool mddev_is_dm(struct mddev *mddev) in mddev_is_dm() argument
1050 return !mddev->gendisk; in mddev_is_dm()
1053 static inline bool raid_is_456(struct mddev *mddev) in raid_is_456() argument
1055 return mddev->level == ID_RAID4 || mddev->level == ID_RAID5 || in raid_is_456()
1056 mddev->level == ID_RAID6; in raid_is_456()
1059 static inline void mddev_trace_remap(struct mddev *mddev, struct bio *bio, in mddev_trace_remap() argument
1062 if (!mddev_is_dm(mddev)) in mddev_trace_remap()
1063 trace_block_bio_remap(bio, disk_devt(mddev->gendisk), sector); in mddev_trace_remap()
1090 #define mddev_add_trace_msg(mddev, fmt, args...) \ argument
1092 if (!mddev_is_dm(mddev)) \
1093 blk_add_trace_msg((mddev)->gendisk->queue, fmt, ##args); \