From: Yu Kuai <yuku...@huawei.com>

The only difference is that "none" is removed and initial
last_sync_action will be idle.

On the one hand, this value is introduced by commit c4a395514516
("MD: Remember the last sync operation that was performed"), and the
usage described in commit message is not affected. On the other hand,
last_sync_action is not used in mdadm or mdmon, and none of the tests
that I can find.

Signed-off-by: Yu Kuai <yuku...@huawei.com>
---
 drivers/md/dm-raid.c | 2 +-
 drivers/md/md.c      | 7 ++++---
 drivers/md/md.h      | 9 ++++-----
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index abe88d1e6735..052c00c1eb15 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -3542,7 +3542,7 @@ static void raid_status(struct dm_target *ti, 
status_type_t type,
                recovery = rs->md.recovery;
                state = decipher_sync_action(mddev, recovery);
                progress = rs_get_progress(rs, recovery, state, 
resync_max_sectors);
-               resync_mismatches = (mddev->last_sync_action && 
!strcasecmp(mddev->last_sync_action, "check")) ?
+               resync_mismatches = mddev->last_sync_action == ACTION_CHECK ?
                                    atomic64_read(&mddev->resync_mismatches) : 
0;
 
                /* HM FIXME: do we want another state char for raid0? It shows 
'D'/'A'/'-' now */
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 5fa7b5f4bc6d..ab492e885867 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -768,7 +768,7 @@ int mddev_init(struct mddev *mddev)
        init_waitqueue_head(&mddev->recovery_wait);
        mddev->reshape_position = MaxSector;
        mddev->reshape_backwards = 0;
-       mddev->last_sync_action = "none";
+       mddev->last_sync_action = ACTION_IDLE;
        mddev->resync_min = 0;
        mddev->resync_max = MaxSector;
        mddev->level = LEVEL_NONE;
@@ -5149,7 +5149,8 @@ __ATTR_PREALLOC(sync_action, S_IRUGO|S_IWUSR, 
action_show, action_store);
 static ssize_t
 last_sync_action_show(struct mddev *mddev, char *page)
 {
-       return sprintf(page, "%s\n", mddev->last_sync_action);
+       return sprintf(page, "%s\n",
+                      md_sync_action_name(mddev->last_sync_action));
 }
 
 static struct md_sysfs_entry md_last_scan_mode = __ATTR_RO(last_sync_action);
@@ -8963,7 +8964,7 @@ void md_do_sync(struct md_thread *thread)
 
        action = md_sync_action(mddev);
        desc = md_sync_action_name(action);
-       mddev->last_sync_action = desc;
+       mddev->last_sync_action = action;
 
        /*
         * Before starting a resync we must have set curr_resync to
diff --git a/drivers/md/md.h b/drivers/md/md.h
index ee06cb076f8c..41781e41d8ff 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -426,13 +426,12 @@ struct mddev {
        struct md_thread __rcu          *thread;        /* management thread */
        struct md_thread __rcu          *sync_thread;   /* doing resync or 
reconstruct */
 
-       /* 'last_sync_action' is initialized to "none".  It is set when a
-        * sync operation (i.e "data-check", "requested-resync", "resync",
-        * "recovery", or "reshape") is started.  It holds this value even
+       /*
+        * Set when a sync operation is started. It holds this value even
         * when the sync thread is "frozen" (interrupted) or "idle" (stopped
-        * or finished).  It is overwritten when a new sync operation is begun.
+        * or finished). It is overwritten when a new sync operation is begun.
         */
-       const char                      *last_sync_action;
+       enum sync_action                last_sync_action;
        sector_t                        curr_resync;    /* last block scheduled 
*/
        /* As resync requests can complete out of order, we cannot easily track
         * how much resync has been completed.  So we occasionally pause until
-- 
2.39.2


Reply via email to