mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 09:51:21 -04:00
md: add a new enum type sync_action
In order to make code related to sync_thread cleaner in following patches, also add detail comment about each sync action. And also prepare to remove the related recovery_flags in the fulture. Signed-off-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20240611132251.1967786-3-yukuai1@huaweicloud.com
This commit is contained in:
@@ -34,6 +34,61 @@
|
||||
*/
|
||||
#define MD_FAILFAST (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT)
|
||||
|
||||
/* Status of sync thread. */
|
||||
enum sync_action {
|
||||
/*
|
||||
* Represent by MD_RECOVERY_SYNC, start when:
|
||||
* 1) after assemble, sync data from first rdev to other copies, this
|
||||
* must be done first before other sync actions and will only execute
|
||||
* once;
|
||||
* 2) resize the array(notice that this is not reshape), sync data for
|
||||
* the new range;
|
||||
*/
|
||||
ACTION_RESYNC,
|
||||
/*
|
||||
* Represent by MD_RECOVERY_RECOVER, start when:
|
||||
* 1) for new replacement, sync data based on the replace rdev or
|
||||
* available copies from other rdev;
|
||||
* 2) for new member disk while the array is degraded, sync data from
|
||||
* other rdev;
|
||||
* 3) reassemble after power failure or re-add a hot removed rdev, sync
|
||||
* data from first rdev to other copies based on bitmap;
|
||||
*/
|
||||
ACTION_RECOVER,
|
||||
/*
|
||||
* Represent by MD_RECOVERY_SYNC | MD_RECOVERY_REQUESTED |
|
||||
* MD_RECOVERY_CHECK, start when user echo "check" to sysfs api
|
||||
* sync_action, used to check if data copies from differenct rdev are
|
||||
* the same. The number of mismatch sectors will be exported to user
|
||||
* by sysfs api mismatch_cnt;
|
||||
*/
|
||||
ACTION_CHECK,
|
||||
/*
|
||||
* Represent by MD_RECOVERY_SYNC | MD_RECOVERY_REQUESTED, start when
|
||||
* user echo "repair" to sysfs api sync_action, usually paired with
|
||||
* ACTION_CHECK, used to force syncing data once user found that there
|
||||
* are inconsistent data,
|
||||
*/
|
||||
ACTION_REPAIR,
|
||||
/*
|
||||
* Represent by MD_RECOVERY_RESHAPE, start when new member disk is added
|
||||
* to the conf, notice that this is different from spares or
|
||||
* replacement;
|
||||
*/
|
||||
ACTION_RESHAPE,
|
||||
/*
|
||||
* Represent by MD_RECOVERY_FROZEN, can be set by sysfs api sync_action
|
||||
* or internal usage like setting the array read-only, will forbid above
|
||||
* actions.
|
||||
*/
|
||||
ACTION_FROZEN,
|
||||
/*
|
||||
* All above actions don't match.
|
||||
*/
|
||||
ACTION_IDLE,
|
||||
NR_SYNC_ACTIONS,
|
||||
};
|
||||
|
||||
/*
|
||||
* The struct embedded in rdev is used to serialize IO.
|
||||
*/
|
||||
@@ -571,7 +626,7 @@ enum recovery_flags {
|
||||
/* interrupted because io-error */
|
||||
MD_RECOVERY_ERROR,
|
||||
|
||||
/* flags determines sync action */
|
||||
/* flags determines sync action, see details in enum sync_action */
|
||||
|
||||
/* if just this flag is set, action is resync. */
|
||||
MD_RECOVERY_SYNC,
|
||||
|
||||
Reference in New Issue
Block a user