- r = command (NULL, &err, "/sbin/mkfs", "-t", fstype, device, NULL);
+ /* Same for JFS. */
+ if (STREQ (fstype, "jfs"))
+ argv[i++] = "-f";
+
+ /* For GFS, GFS2, assume a single node. */
+ if (STREQ (fstype, "gfs") || STREQ (fstype, "gfs2")) {
+ argv[i++] = "-p";
+ argv[i++] = "lock_nolock";
+ /* The man page says this is default, but it doesn't seem to be: */
+ argv[i++] = "-j";
+ argv[i++] = "1";
+ /* Don't ask questions: */
+ argv[i++] = "-O";
+ }
+
+ for (j = 0; j < nr_extra; ++j)
+ argv[i++] = extra[j];
+
+ argv[i++] = device;
+ argv[i++] = NULL;
+
+ if (i > MAX_ARGS)
+ abort ();
+
+ r = commandv (NULL, &err, argv);