Whamcloud - gitweb
LU-7002 utils: SELinux context repeated in mount opts
[fs/lustre-release.git] / lustre / utils / mount_utils_ldiskfs.c
index 0aa9b4f..1ce4aa1 100644 (file)
@@ -93,8 +93,11 @@ extern char *progname;
 #define DUMMY_FILE_NAME_LEN             25
 #define EXT3_DIRENT_SIZE                DUMMY_FILE_NAME_LEN
 
+static void append_unique(char *buf, char *prefix, char *key, char *val,
+                         size_t maxbuflen);
+
 /*
- * Concatenate context of the temporary mount point iff selinux is enabled
+ * Concatenate context of the temporary mount point if selinux is enabled
  */
 #ifdef HAVE_SELINUX
 static void append_context_for_mount(char *mntpt, struct mkfs_opts *mop)
@@ -109,8 +112,9 @@ static void append_context_for_mount(char *mntpt, struct mkfs_opts *mop)
        }
 
        if (fcontext != NULL) {
-               strcat(mop->mo_ldd.ldd_mount_opts, ",context=");
-               strcat(mop->mo_ldd.ldd_mount_opts, fcontext);
+               append_unique(mop->mo_ldd.ldd_mount_opts,
+                             ",", "context", fcontext,
+                             sizeof(mop->mo_ldd.ldd_mount_opts));
                freecon(fcontext);
        }
 }
@@ -921,8 +925,8 @@ int ldiskfs_make_lustre(struct mkfs_opts *mop)
 
        vprint("formatting backing filesystem %s on %s\n",
               MT_STR(&mop->mo_ldd), dev);
-       vprint("\ttarget name  %s\n", mop->mo_ldd.ldd_svname);
-       vprint("\t4k blocks     "LPU64"\n", block_count);
+       vprint("\ttarget name   %s\n", mop->mo_ldd.ldd_svname);
+       vprint("\t4k blocks     %ju\n", (uintmax_t)block_count);
        vprint("\toptions       %s\n", mop->mo_mkfsopts);
 
        /* mkfs_cmd's trailing space is important! */
@@ -930,7 +934,8 @@ int ldiskfs_make_lustre(struct mkfs_opts *mop)
        strscat(mkfs_cmd, " ", sizeof(mkfs_cmd));
        strscat(mkfs_cmd, dev, sizeof(mkfs_cmd));
        if (block_count != 0) {
-               sprintf(buf, " "LPU64, block_count);
+               snprintf(buf, sizeof(buf), " %ju",
+                        (uintmax_t)block_count);
                strscat(mkfs_cmd, buf, sizeof(mkfs_cmd));
        }