]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Introduce enum flag_mode for setting and clearing flags.
authorNeilBrown <neilb@suse.com>
Tue, 29 Nov 2016 22:02:11 +0000 (09:02 +1100)
committerJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 29 Nov 2016 22:12:13 +0000 (17:12 -0500)
We currently use '1' to indicate that a flag (writemostly or failfast)
needs to be set, and '2' to indicate that it needs to be cleared.

Using magic number like this is not a best-practice.

So replaced them with values from a enum.

No functional change.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Build.c
Create.c
Incremental.c
Manage.c
mdadm.c
mdadm.h

diff --git a/Build.c b/Build.c
index 8603c710aea2b2a5ac720d86037c3ecac1bebd4b..74a440e78965d76c9d1c3d97236593a00b97bcf2 100644 (file)
--- a/Build.c
+++ b/Build.c
@@ -192,7 +192,7 @@ int Build(char *mddev, struct mddev_dev *devlist,
                        disk.number = i;
                        disk.raid_disk = i;
                        disk.state = (1<<MD_DISK_SYNC) | (1<<MD_DISK_ACTIVE);
-                       if (dv->writemostly == 1)
+                       if (dv->writemostly == FlagSet)
                                disk.state |= 1<<MD_DISK_WRITEMOSTLY;
                        disk.major = major(stb.st_rdev);
                        disk.minor = minor(stb.st_rdev);
index bd114eabafc14e5f8864cb9d06ab0285c1c77c19..2721884efabce46ee4e00b2e04f4f27d3a80b7c2 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -888,9 +888,9 @@ int Create(struct supertype *st, char *mddev,
                                else
                                        inf->disk.state = 0;
 
-                               if (dv->writemostly == 1)
+                               if (dv->writemostly == FlagSet)
                                        inf->disk.state |= (1<<MD_DISK_WRITEMOSTLY);
-                               if (dv->failfast == 1)
+                               if (dv->failfast == FlagSet)
                                        inf->disk.state |= (1<<MD_DISK_FAILFAST);
 
                                if (have_container)
index 75d95ccc497a4a3c7fcb364b15a71cc9478b6238..0f507bb32c9e574e195104aa1eda8ef66d987e55 100644 (file)
@@ -1034,8 +1034,8 @@ static int array_try_spare(char *devname, int *dfdp, struct dev_policy *pol,
                        char chosen_devname[24]; // 2*11 for int (including signs) + colon + null
                        devlist.next = NULL;
                        devlist.used = 0;
-                       devlist.writemostly = 0;
-                       devlist.failfast = 0;
+                       devlist.writemostly = FlagDefault;
+                       devlist.failfast = FlagDefault;
                        devlist.devname = chosen_devname;
                        sprintf(chosen_devname, "%d:%d", major(stb.st_rdev),
                                minor(stb.st_rdev));
index 429d8631cd23a2efc2d18c2388395d5b34ef3951..5c3d2b9b1a9fceb630aa186ab83a7ac912c1f004 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -679,17 +679,17 @@ int attempt_re_add(int fd, int tfd, struct mddev_dev *dv,
                        else
                                disc.state |= (1 << MD_DISK_CLUSTER_ADD);
                }
-               if (dv->writemostly == 1)
+               if (dv->writemostly == FlagSet)
                        disc.state |= 1 << MD_DISK_WRITEMOSTLY;
-               if (dv->writemostly == 2)
+               if (dv->writemostly == FlagClear)
                        disc.state &= ~(1 << MD_DISK_WRITEMOSTLY);
-               if (dv->failfast == 1)
+               if (dv->failfast == FlagSet)
                        disc.state |= 1 << MD_DISK_FAILFAST;
-               if (dv->failfast == 2)
+               if (dv->failfast == FlagClear)
                        disc.state &= ~(1 << MD_DISK_FAILFAST);
                remove_partitions(tfd);
-               if (update || dv->writemostly > 0
-                       || dv->failfast > 0) {
+               if (update || dv->writemostly != FlagDefault
+                       || dv->failfast != FlagDefault) {
                        int rv = -1;
                        tfd = dev_open(dv->devname, O_RDWR);
                        if (tfd < 0) {
@@ -697,19 +697,19 @@ int attempt_re_add(int fd, int tfd, struct mddev_dev *dv,
                                return -1;
                        }
 
-                       if (dv->writemostly == 1)
+                       if (dv->writemostly == FlagSet)
                                rv = dev_st->ss->update_super(
                                        dev_st, NULL, "writemostly",
                                        devname, verbose, 0, NULL);
-                       if (dv->writemostly == 2)
+                       if (dv->writemostly == FlagClear)
                                rv = dev_st->ss->update_super(
                                        dev_st, NULL, "readwrite",
                                        devname, verbose, 0, NULL);
-                       if (dv->failfast == 1)
+                       if (dv->failfast == FlagSet)
                                rv = dev_st->ss->update_super(
                                        dev_st, NULL, "failfast",
                                        devname, verbose, 0, NULL);
-                       if (dv->failfast == 2)
+                       if (dv->failfast == FlagClear)
                                rv = dev_st->ss->update_super(
                                        dev_st, NULL, "nofailfast",
                                        devname, verbose, 0, NULL);
@@ -975,9 +975,9 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
                int dfd;
                if (dv->disposition == 'j')
                        disc.state |= (1 << MD_DISK_JOURNAL) | (1 << MD_DISK_SYNC);
-               if (dv->writemostly == 1)
+               if (dv->writemostly == FlagSet)
                        disc.state |= 1 << MD_DISK_WRITEMOSTLY;
-               if (dv->failfast == 1)
+               if (dv->failfast == FlagSet)
                        disc.state |= 1 << MD_DISK_FAILFAST;
                dfd = dev_open(dv->devname, O_RDWR | O_EXCL|O_DIRECT);
                if (tst->ss->add_to_super(tst, &disc, dfd,
@@ -1022,9 +1022,9 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
                        disc.state |= (1 << MD_DISK_CLUSTER_ADD);
        }
 
-       if (dv->writemostly == 1)
+       if (dv->writemostly == FlagSet)
                disc.state |= (1 << MD_DISK_WRITEMOSTLY);
-       if (dv->failfast == 1)
+       if (dv->failfast == FlagSet)
                disc.state |= (1 << MD_DISK_FAILFAST);
        if (tst->ss->external) {
                /* add a disk
@@ -1801,8 +1801,8 @@ int move_spare(char *from_devname, char *to_devname, dev_t devid)
 
        devlist.next = NULL;
        devlist.used = 0;
-       devlist.writemostly = 0;
-       devlist.failfast = 0;
+       devlist.writemostly = FlagDefault;
+       devlist.failfast = FlagDefault;
        devlist.devname = devname;
        sprintf(devname, "%d:%d", major(devid), minor(devid));
 
diff --git a/mdadm.c b/mdadm.c
index 3c8f273c82546bd7c00eb269ac973fbdd054bc22..c3a265b80947bfee847d4de53e1f2d920d6e3664 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -89,8 +89,8 @@ int main(int argc, char *argv[])
        int oneshot = 0;
        int spare_sharing = 1;
        struct supertype *ss = NULL;
-       int writemostly = 0;
-       int failfast = 0;
+       enum flag_mode writemostly = FlagDefault;
+       enum flag_mode failfast = FlagDefault;
        char *shortopt = short_options;
        int dosyslog = 0;
        int rebuild_map = 0;
@@ -412,20 +412,20 @@ int main(int argc, char *argv[])
                case O(CREATE,'W'):
                case O(CREATE,WriteMostly):
                        /* set write-mostly for following devices */
-                       writemostly = 1;
+                       writemostly = FlagSet;
                        continue;
 
                case O(MANAGE,'w'):
                        /* clear write-mostly for following devices */
-                       writemostly = 2;
+                       writemostly = FlagClear;
                        continue;
 
                case O(MANAGE,FailFast):
                case O(CREATE,FailFast):
-                       failfast = 1;
+                       failfast = FlagSet;
                        continue;
                case O(MANAGE,NoFailFast):
-                       failfast = 2;
+                       failfast = FlagClear;
                        continue;
 
                case O(GROW,'z'):
diff --git a/mdadm.h b/mdadm.h
index a10964c533ad6807aa094043f3421a31f628a6e5..71b8afb9fee6e0e7925d3a4e1bb58232e97ef446 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -439,6 +439,10 @@ enum bitmap_update {
     NodeNumUpdate,
 };
 
+enum flag_mode {
+       FlagDefault, FlagSet, FlagClear,
+};
+
 /* structures read from config file */
 /* List of mddevice names and identifiers
  * Identifiers can be:
@@ -532,8 +536,8 @@ struct mddev_dev {
                                 * 'A' for re_add.
                                 * Not set for names read from .config
                                 */
-       char writemostly;       /* 1 for 'set writemostly', 2 for 'clear writemostly' */
-       char failfast;          /* Ditto but for 'failfast' flag */
+       enum flag_mode writemostly;
+       enum flag_mode failfast;
        int used;               /* set when used */
        long long data_offset;
        struct mddev_dev *next;