mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
mkfs: optimization and code cleanup
v1->v2: fix a typo pointed by Matt Optimizations by reducing the STREQ operations and do some code cleanup. Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> RWMJ: Whitespace changes.
This commit is contained in:
committed by
Richard W.M. Jones
parent
6067e1540f
commit
2ac869bcc8
@@ -44,13 +44,17 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize,
|
||||
int r;
|
||||
char *err;
|
||||
char mke2fs[] = "mke2fs";
|
||||
int extfs = 0;
|
||||
|
||||
if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
|
||||
STREQ (fstype, "ext4"))
|
||||
extfs = 1;
|
||||
|
||||
/* For ext2/3/4 run the mke2fs program directly. This is because
|
||||
* the mkfs program "eats" some options, in particular the -F
|
||||
* option.
|
||||
*/
|
||||
if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
|
||||
STREQ (fstype, "ext4")) {
|
||||
if (extfs) {
|
||||
if (e2prog (mke2fs) == -1)
|
||||
return -1;
|
||||
ADD_ARG (argv, i, mke2fs);
|
||||
@@ -64,8 +68,7 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize,
|
||||
/* Force mke2fs to create a filesystem, even if it thinks it
|
||||
* shouldn't (RHBZ#690819).
|
||||
*/
|
||||
if (STREQ (fstype, "ext2") || STREQ (fstype, "ext3") ||
|
||||
STREQ (fstype, "ext4"))
|
||||
if (extfs)
|
||||
ADD_ARG (argv, i, "-F");
|
||||
|
||||
/* mkfs.ntfs requires the -Q argument otherwise it writes zeroes
|
||||
@@ -77,16 +80,13 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize,
|
||||
|
||||
/* mkfs.reiserfs produces annoying interactive prompts unless you
|
||||
* tell it to be quiet.
|
||||
* mkfs.jfs is the same
|
||||
* mkfs.xfs must force to make xfs filesystem when the device already
|
||||
* has a filesystem on it
|
||||
*/
|
||||
if (STREQ (fstype, "reiserfs"))
|
||||
ADD_ARG (argv, i, "-f");
|
||||
|
||||
/* Same for JFS. */
|
||||
if (STREQ (fstype, "jfs"))
|
||||
ADD_ARG (argv, i, "-f");
|
||||
|
||||
if (STREQ (fstype, "xfs"))
|
||||
ADD_ARG (argv, i, "-f");
|
||||
if (STREQ (fstype, "reiserfs") || STREQ (fstype, "jfs") ||
|
||||
STREQ (fstype, "xfs"))
|
||||
ADD_ARG(argv, i, "-f");
|
||||
|
||||
/* For GFS, GFS2, assume a single node. */
|
||||
if (STREQ (fstype, "gfs") || STREQ (fstype, "gfs2")) {
|
||||
@@ -147,8 +147,7 @@ do_mkfs_opts (const char *fstype, const char *device, int blocksize,
|
||||
}
|
||||
|
||||
if (optargs_bitmask & GUESTFS_MKFS_OPTS_INODE_BITMASK) {
|
||||
if (!STREQ (fstype, "ext2") && !STREQ (fstype, "ext3") &&
|
||||
!STREQ (fstype, "ext4")) {
|
||||
if (!extfs) {
|
||||
reply_with_error ("inode size (-I) can only be set on ext2/3/4 filesystems");
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user