Lines Matching refs:mddev

30 	struct mddev *mddev; /* pointing back to mddev. */  member
116 static struct dlm_lock_resource *lockres_init(struct mddev *mddev, in lockres_init() argument
121 struct md_cluster_info *cinfo = mddev->cluster_info; in lockres_init()
127 res->mddev = mddev; in lockres_init()
191 static void add_resync_info(struct mddev *mddev, struct dlm_lock_resource *lockres, in add_resync_info() argument
201 static struct suspend_info *read_resync_info(struct mddev *mddev, struct dlm_lock_resource *lockres) in read_resync_info() argument
224 struct mddev *mddev = thread->mddev; in recover_bitmaps() local
225 struct md_cluster_info *cinfo = mddev->cluster_info; in recover_bitmaps()
245 bm_lockres = lockres_init(mddev, str, NULL, 1); in recover_bitmaps()
257 ret = bitmap_copy_from_slot(mddev, slot, &lo, &hi, true); in recover_bitmaps()
264 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in recover_bitmaps()
265 if (lo < mddev->recovery_cp) in recover_bitmaps()
266 mddev->recovery_cp = lo; in recover_bitmaps()
267 md_check_recovery(mddev); in recover_bitmaps()
282 struct mddev *mddev = arg; in recover_slot() local
283 struct md_cluster_info *cinfo = mddev->cluster_info; in recover_slot()
286 mddev->bitmap_info.cluster_name, in recover_slot()
292 mddev, "recover"); in recover_slot()
305 struct mddev *mddev = arg; in recover_done() local
306 struct md_cluster_info *cinfo = mddev->cluster_info; in recover_done()
326 struct md_cluster_info *cinfo = res->mddev->cluster_info; in ack_bast()
376 static void process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) in process_add_new_disk() argument
379 struct md_cluster_info *cinfo = mddev->cluster_info; in process_add_new_disk()
391 kobject_uevent_env(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE, envp); in process_add_new_disk()
398 static void process_metadata_update(struct mddev *mddev, struct cluster_msg *msg) in process_metadata_update() argument
400 struct md_cluster_info *cinfo = mddev->cluster_info; in process_metadata_update()
402 md_reload_sb(mddev); in process_metadata_update()
406 static void process_remove_disk(struct mddev *mddev, struct cluster_msg *msg) in process_remove_disk() argument
408 struct md_rdev *rdev = md_find_rdev_nr_rcu(mddev, msg->raid_slot); in process_remove_disk()
416 static void process_readd_disk(struct mddev *mddev, struct cluster_msg *msg) in process_readd_disk() argument
418 struct md_rdev *rdev = md_find_rdev_nr_rcu(mddev, msg->raid_slot); in process_readd_disk()
426 static void process_recvd_msg(struct mddev *mddev, struct cluster_msg *msg) in process_recvd_msg() argument
432 process_metadata_update(mddev, msg); in process_recvd_msg()
437 process_suspend_info(mddev->cluster_info, msg->slot, in process_recvd_msg()
443 process_add_new_disk(mddev, msg); in process_recvd_msg()
448 process_remove_disk(mddev, msg); in process_recvd_msg()
453 process_readd_disk(mddev, msg); in process_recvd_msg()
466 struct md_cluster_info *cinfo = thread->mddev->cluster_info; in recv_daemon()
479 process_recvd_msg(thread->mddev, &msg); in recv_daemon()
578 static int gather_all_resync_info(struct mddev *mddev, int total_slots) in gather_all_resync_info() argument
580 struct md_cluster_info *cinfo = mddev->cluster_info; in gather_all_resync_info()
590 bm_lockres = lockres_init(mddev, str, NULL, 1); in gather_all_resync_info()
600 s = read_resync_info(mddev, bm_lockres); in gather_all_resync_info()
625 static int join(struct mddev *mddev, int nodes) in join() argument
641 mddev->cluster_info = cinfo; in join()
644 pretty_uuid(str, mddev->uuid); in join()
645 ret = dlm_new_lockspace(str, mddev->bitmap_info.cluster_name, in join()
647 &md_ls_ops, mddev, &ops_rv, &cinfo->lockspace); in join()
657 cinfo->sb_lock = lockres_init(mddev, "cmd-super", in join()
665 cinfo->recv_thread = md_register_thread(recv_daemon, mddev, "cluster_recv"); in join()
670 cinfo->message_lockres = lockres_init(mddev, "message", NULL, 1); in join()
673 cinfo->token_lockres = lockres_init(mddev, "token", NULL, 0); in join()
676 cinfo->ack_lockres = lockres_init(mddev, "ack", ack_bast, 0); in join()
679 cinfo->no_new_dev_lockres = lockres_init(mddev, "no-new-dev", NULL, 0); in join()
694 cinfo->bitmap_lockres = lockres_init(mddev, str, NULL, 1); in join()
706 ret = gather_all_resync_info(mddev, nodes); in join()
720 mddev->cluster_info = NULL; in join()
726 static int leave(struct mddev *mddev) in leave() argument
728 struct md_cluster_info *cinfo = mddev->cluster_info; in leave()
748 static int slot_number(struct mddev *mddev) in slot_number() argument
750 struct md_cluster_info *cinfo = mddev->cluster_info; in slot_number()
755 static void resync_info_update(struct mddev *mddev, sector_t lo, sector_t hi) in resync_info_update() argument
757 struct md_cluster_info *cinfo = mddev->cluster_info; in resync_info_update()
759 add_resync_info(mddev, cinfo->bitmap_lockres, lo, hi); in resync_info_update()
764 static int metadata_update_start(struct mddev *mddev) in metadata_update_start() argument
766 return lock_comm(mddev->cluster_info); in metadata_update_start()
769 static int metadata_update_finish(struct mddev *mddev) in metadata_update_finish() argument
771 struct md_cluster_info *cinfo = mddev->cluster_info; in metadata_update_finish()
782 static int metadata_update_cancel(struct mddev *mddev) in metadata_update_cancel() argument
784 struct md_cluster_info *cinfo = mddev->cluster_info; in metadata_update_cancel()
789 static int resync_send(struct mddev *mddev, enum msg_type type, in resync_send() argument
792 struct md_cluster_info *cinfo = mddev->cluster_info; in resync_send()
799 resync_info_update(mddev, lo, hi); in resync_send()
807 static int resync_start(struct mddev *mddev, sector_t lo, sector_t hi) in resync_start() argument
810 return resync_send(mddev, RESYNCING, lo, hi); in resync_start()
813 static void resync_finish(struct mddev *mddev) in resync_finish() argument
816 resync_send(mddev, RESYNCING, 0, 0); in resync_finish()
819 static int area_resyncing(struct mddev *mddev, sector_t lo, sector_t hi) in area_resyncing() argument
821 struct md_cluster_info *cinfo = mddev->cluster_info; in area_resyncing()
838 static int add_new_disk_start(struct mddev *mddev, struct md_rdev *rdev) in add_new_disk_start() argument
840 struct md_cluster_info *cinfo = mddev->cluster_info; in add_new_disk_start()
865 static int add_new_disk_finish(struct mddev *mddev) in add_new_disk_finish() argument
868 struct md_cluster_info *cinfo = mddev->cluster_info; in add_new_disk_finish()
871 md_update_sb(mddev, 1); in add_new_disk_finish()
878 static int new_disk_ack(struct mddev *mddev, bool ack) in new_disk_ack() argument
880 struct md_cluster_info *cinfo = mddev->cluster_info; in new_disk_ack()
883 pr_warn("md-cluster(%s): Spurious cluster confirmation\n", mdname(mddev)); in new_disk_ack()
893 static int remove_disk(struct mddev *mddev, struct md_rdev *rdev) in remove_disk() argument
896 struct md_cluster_info *cinfo = mddev->cluster_info; in remove_disk()
907 struct mddev *mddev = rdev->mddev; in gather_bitmaps() local
908 struct md_cluster_info *cinfo = mddev->cluster_info; in gather_bitmaps()
916 for (sn = 0; sn < mddev->bitmap_info.nodes; sn++) { in gather_bitmaps()
919 err = bitmap_copy_from_slot(mddev, sn, &lo, &hi, false); in gather_bitmaps()
924 if ((hi > 0) && (lo < mddev->recovery_cp)) in gather_bitmaps()
925 mddev->recovery_cp = lo; in gather_bitmaps()