On Mon, 3 Jun 2024 20:58:05 +0800 Yu Kuai <yukuai3@xxxxxxxxxx> wrote: > 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@xxxxxxxxxx> > --- > drivers/md/md.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 56 insertions(+), 1 deletion(-) > > diff --git a/drivers/md/md.h b/drivers/md/md.h > index 170412a65b63..6b9d9246f260 100644 > --- a/drivers/md/md.h > +++ b/drivers/md/md.h > @@ -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, > +}; I like if counter is keep in same style as rest enum values, like ACTION_COUNT. Anyway LGTM. Mariusz