Lines Matching refs:pers
433 if (!mddev->pers->make_request(mddev, bio)) { in md_handle_request()
449 if (mddev == NULL || mddev->pers == NULL) { in md_submit_bio()
493 mddev->pers->quiesce(mddev, 1); in mddev_suspend()
511 mddev->pers->quiesce(mddev, 0); in mddev_resume()
813 if (mddev->pers == NULL || in mddev_unlock()
814 mddev->pers->sync_request == NULL) { in mddev_unlock()
878 struct md_personality *pers; in find_pers() local
879 list_for_each_entry(pers, &pers_list, list) { in find_pers()
880 if (level != LEVEL_NONE && pers->level == level) in find_pers()
881 return pers; in find_pers()
882 if (strcmp(pers->name, clevel)==0) in find_pers()
883 return pers; in find_pers()
1169 mdname(mddev), mddev->pers->name); in md_check_no_bitmap()
1362 } else if (mddev->pers == NULL) { in super_90_validate()
1895 } else if (mddev->pers == NULL) { in super_1_validate()
2402 if (rdev_read_only(rdev) && mddev->pers) in bind_rdev_to_array()
2409 if (mddev->pers) { in bind_rdev_to_array()
2427 if (mddev->pers) in bind_rdev_to_array()
2866 if (!mddev->pers->hot_remove_disk || add_journal) { in add_bound_rdev()
2875 err = mddev->pers->hot_add_disk(mddev, rdev); in add_bound_rdev()
2980 if (cmd_match(buf, "faulty") && rdev->mddev->pers) { in state_store()
2987 if (rdev->mddev->pers) { in state_store()
3001 if (mddev->pers) { in state_store()
3046 if (rdev->mddev->pers == NULL) { in state_store()
3081 if (rdev->mddev->pers) in state_store()
3089 if (rdev->mddev->pers) in state_store()
3096 if (!rdev->mddev->pers) in state_store()
3175 if (rdev->mddev->pers && slot == -1) { in slot_store()
3186 if (rdev->mddev->pers->hot_remove_disk == NULL) in slot_store()
3194 } else if (rdev->mddev->pers) { in slot_store()
3206 if (rdev->mddev->pers->hot_add_disk == NULL) in slot_store()
3220 err = rdev->mddev->pers->hot_add_disk(rdev->mddev, rdev); in slot_store()
3258 if (rdev->mddev->pers && rdev->raid_disk >= 0) in offset_store()
3315 if (mddev->pers && mddev->persistent && in new_offset_store()
3378 if (my_mddev->pers && rdev->raid_disk >= 0) { in rdev_size_store()
3387 if (!my_mddev->pers->resize) in rdev_size_store()
3462 if (rdev->mddev->pers && in recovery_start_store()
3530 if (rdev->mddev->pers && test_bit(MD_HAS_PPL, &rdev->mddev->flags) && in ppl_sector_store()
3567 if (rdev->mddev->pers && test_bit(MD_HAS_PPL, &rdev->mddev->flags) && in ppl_size_store()
3892 p = mddev->pers; in level_show()
3911 struct md_personality *pers, *oldpers; in level_store() local
3923 if (mddev->pers == NULL) { in level_store()
3950 if (!mddev->pers->quiesce) { in level_store()
3952 mdname(mddev), mddev->pers->name); in level_store()
3967 pers = find_pers(level, clevel); in level_store()
3968 if (!pers || !try_module_get(pers->owner)) { in level_store()
3976 if (pers == mddev->pers) { in level_store()
3978 module_put(pers->owner); in level_store()
3982 if (!pers->takeover) { in level_store()
3983 module_put(pers->owner); in level_store()
3996 priv = pers->takeover(mddev); in level_store()
4004 module_put(pers->owner); in level_store()
4016 oldpers = mddev->pers; in level_store()
4018 mddev->pers = pers; in level_store()
4020 strlcpy(mddev->clevel, pers->name, sizeof(mddev->clevel)); in level_store()
4046 pers->sync_request != NULL) { in level_store()
4056 pers->sync_request == NULL) { in level_store()
4088 if (pers->sync_request == NULL) { in level_store()
4096 pers->run(mddev); in level_store()
4136 if (mddev->pers) { in layout_store()
4137 if (mddev->pers->check_reshape == NULL) in layout_store()
4143 err = mddev->pers->check_reshape(mddev); in layout_store()
4185 if (mddev->pers) in raid_disks_store()
4245 if (mddev->pers) { in chunk_size_store()
4246 if (mddev->pers->check_reshape == NULL) in chunk_size_store()
4252 err = mddev->pers->check_reshape(mddev); in chunk_size_store()
4294 if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in resync_start_store()
4299 if (mddev->pers) in resync_start_store()
4370 if (mddev->pers && !test_bit(MD_NOT_READY, &mddev->flags)) { in array_state_show()
4414 if (mddev->pers && (st == active || st == clean) && mddev->ro != 1) { in array_state_store()
4447 if (mddev->pers) in array_state_store()
4455 if (mddev->pers) in array_state_store()
4464 if (mddev->pers) { in array_state_store()
4479 if (mddev->pers) { in array_state_store()
4491 if (mddev->pers) { in array_state_store()
4688 if (mddev->pers) { in size_store()
4819 if (!mddev->pers || !mddev->pers->sync_request) in action_store()
4847 if (mddev->pers->start_reshape == NULL) in action_store()
4855 err = mddev->pers->start_reshape(mddev); in action_store()
5151 if (mddev->pers == NULL || in suspend_lo_store()
5152 mddev->pers->quiesce == NULL) in suspend_lo_store()
5188 if (mddev->pers == NULL) in suspend_hi_store()
5229 if (mddev->pers) in reshape_position_store()
5317 if (mddev->pers) in array_size_store()
5318 sectors = mddev->pers->size(mddev, 0, 0); in array_size_store()
5326 else if (mddev->pers && mddev->pers->size(mddev, 0, 0) < sectors) in array_size_store()
5334 if (mddev->pers) in array_size_store()
5357 } else if (mddev->pers) { in consistency_policy_show()
5358 if (mddev->pers->sync_request) in consistency_policy_show()
5374 if (mddev->pers) { in consistency_policy_store()
5375 if (mddev->pers->change_consistency_policy) in consistency_policy_store()
5376 err = mddev->pers->change_consistency_policy(mddev, buf); in consistency_policy_store()
5422 if (mddev->pers == NULL || (mddev->pers->level != 1)) in serialize_policy_show()
5448 if (mddev->pers == NULL || (mddev->pers->level != 1)) { in serialize_policy_store()
5782 struct md_personality *pers; in md_run() local
5788 if (mddev->pers) in md_run()
5874 pers = find_pers(mddev->level, mddev->clevel); in md_run()
5875 if (!pers || !try_module_get(pers->owner)) { in md_run()
5887 if (mddev->level != pers->level) { in md_run()
5888 mddev->level = pers->level; in md_run()
5889 mddev->new_level = pers->level; in md_run()
5891 strlcpy(mddev->clevel, pers->name, sizeof(mddev->clevel)); in md_run()
5894 pers->start_reshape == NULL) { in md_run()
5896 module_put(pers->owner); in md_run()
5901 if (pers->sync_request) { in md_run()
5935 err = pers->run(mddev); in md_run()
5938 else if (pers->size(mddev, 0, 0) < mddev->array_sectors) { in md_run()
5944 (unsigned long long)pers->size(mddev, 0, 0) / 2); in md_run()
5947 if (err == 0 && pers->sync_request && in md_run()
6000 if (pers->sync_request) { in md_run()
6021 mddev->pers = pers; in md_run()
6043 pers->free(mddev, mddev->private); in md_run()
6045 module_put(pers->owner); in md_run()
6097 if (mddev->pers->start) { in md_start()
6100 ret = mddev->pers->start(mddev); in md_start()
6118 if (!mddev->pers) in restart_array()
6211 if (mddev->pers && mddev->pers->quiesce) { in __md_stop_writes()
6212 mddev->pers->quiesce(mddev, 1); in __md_stop_writes()
6213 mddev->pers->quiesce(mddev, 0); in __md_stop_writes()
6241 if (mddev->pers && mddev->pers->quiesce && !mddev->suspended) { in mddev_detach()
6242 mddev->pers->quiesce(mddev, 1); in mddev_detach()
6243 mddev->pers->quiesce(mddev, 0); in mddev_detach()
6252 struct md_personality *pers = mddev->pers; in __md_stop() local
6259 mddev->pers = NULL; in __md_stop()
6261 pers->free(mddev, mddev->private); in __md_stop()
6263 if (pers->sync_request && mddev->to_remove == NULL) in __md_stop()
6265 module_put(pers->owner); in __md_stop()
6310 if ((mddev->pers && atomic_read(&mddev->openers) > !!bdev) || in md_set_readonly()
6322 if (mddev->pers) { in md_set_readonly()
6371 if ((mddev->pers && atomic_read(&mddev->openers) > !!bdev) || in do_md_stop()
6384 if (mddev->pers) { in do_md_stop()
6741 if (mddev->pers) { in md_add_new_disk()
6743 if (!mddev->pers->hot_add_disk) { in md_add_new_disk()
6903 if (!mddev->pers) in hot_remove_disk()
6946 if (!mddev->pers) in hot_add_disk()
6954 if (!mddev->pers->hot_add_disk) { in hot_add_disk()
7016 if (mddev->pers) { in set_bitmap_file()
7017 if (!mddev->pers->quiesce || !mddev->thread) in set_bitmap_file()
7061 if (mddev->pers) { in set_bitmap_file()
7201 if (mddev->pers->resize == NULL) in update_size()
7226 rv = mddev->pers->resize(mddev, num_sectors); in update_size()
7243 if (mddev->pers->check_reshape == NULL) in update_raid_disks()
7271 rv = mddev->pers->check_reshape(mddev); in update_raid_disks()
7328 if (mddev->pers->check_reshape == NULL) in update_array_info()
7332 rv = mddev->pers->check_reshape(mddev); in update_array_info()
7345 if (mddev->pers->quiesce == NULL || mddev->thread == NULL) { in update_array_info()
7419 if (mddev->pers == NULL) in set_disk_faulty()
7558 if (mddev->pers && atomic_read(&mddev->openers) > 1) { in md_ioctl()
7587 if (mddev->pers) { in md_ioctl()
7651 if (mddev->pers) { in md_ioctl()
7669 if (mddev->ro && mddev->pers) { in md_ioctl()
7774 if (!ro && mddev->ro == 1 && mddev->pers) { in md_set_read_only()
7967 if (!mddev->pers || !mddev->pers->error_handler) in md_error()
7969 mddev->pers->error_handler(mddev,rdev); in md_error()
8204 struct md_personality *pers; in md_seq_show() local
8207 list_for_each_entry(pers, &pers_list, list) in md_seq_show()
8208 seq_printf(seq, "[%s] ", pers->name); in md_seq_show()
8221 if (mddev->pers || mddev->raid_disks || !list_empty(&mddev->disks)) { in md_seq_show()
8223 mddev->pers ? "" : "in"); in md_seq_show()
8224 if (mddev->pers) { in md_seq_show()
8229 seq_printf(seq, " %s", mddev->pers->name); in md_seq_show()
8255 if (mddev->pers) in md_seq_show()
8276 if (mddev->pers) { in md_seq_show()
8277 mddev->pers->status(seq, mddev); in md_seq_show()
8279 if (mddev->pers->sync_request) { in md_seq_show()
8626 if (!mddev->pers) in md_allow_write()
8630 if (!mddev->pers->sync_request) in md_allow_write()
8823 mddev->pers->quiesce(mddev, 1); in md_do_sync()
8824 mddev->pers->quiesce(mddev, 0); in md_do_sync()
8908 sectors = mddev->pers->sync_request(mddev, j, &skipped); in md_do_sync()
8998 mddev->pers->sync_request(mddev, max_sectors, &skipped); in md_do_sync()
9045 mddev->pers->finish_reshape && in md_do_sync()
9046 mddev->pers->size && in md_do_sync()
9049 md_set_array_sectors(mddev, mddev->pers->size(mddev, 0, 0)); in md_do_sync()
9112 if (mddev->pers->hot_remove_disk( in remove_and_add_spares()
9152 if (mddev->pers->hot_add_disk(mddev, rdev) == 0) { in remove_and_add_spares()
9237 if (mddev->pers->sync_request && !mddev->external) { in md_check_recovery()
9348 if (mddev->pers->check_reshape == NULL || in md_check_recovery()
9349 mddev->pers->check_reshape(mddev) != 0) in md_check_recovery()
9366 if (mddev->pers->sync_request) { in md_check_recovery()
9407 if (mddev->pers->spare_active(mddev)) { in md_reap_sync_thread()
9413 mddev->pers->finish_reshape) { in md_reap_sync_thread()
9414 mddev->pers->finish_reshape(mddev); in md_reap_sync_thread()
9533 if (mddev->pers) in md_notify_reboot()
9621 ret = mddev->pers->resize(mddev, le64_to_cpu(sb->size)); in check_sb_changes()
9691 if (mddev->pers->update_reshape_pos) in check_sb_changes()
9692 mddev->pers->update_reshape_pos(mddev); in check_sb_changes()
9693 if (mddev->pers->start_reshape) in check_sb_changes()
9694 mddev->pers->start_reshape(mddev); in check_sb_changes()
9700 if (mddev->pers->update_reshape_pos) in check_sb_changes()
9701 mddev->pers->update_reshape_pos(mddev); in check_sb_changes()
9748 mddev->pers->spare_active(mddev)) in read_rdev()