[v2] e2fsprogs: Make -U option consistent between tune2fs and mke2fs

Submitted by Drew Davenport on April 13, 2017, 11:56 p.m.

Details

Message ID 20170413235628.GA133121@google.com
State Accepted
Headers show

Commit Message

Drew Davenport April 13, 2017, 11:56 p.m.
Allow "null", "clear", "random", or "time" for the -U option for
mke2fs, which are already allowed options for tune2fs.

Signed-off-by: Drew Davenport <ddavenport@google.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
---
 misc/mke2fs.8.in | 20 +++++++++++++++++++-
 misc/mke2fs.c    |  9 ++++++++-
 2 files changed, 27 insertions(+), 2 deletions(-)

Comments

Theodore Ts'o May 29, 2017, 11:10 p.m.
On Thu, Apr 13, 2017 at 04:56:28PM -0700, Drew Davenport wrote:
> Allow "null", "clear", "random", or "time" for the -U option for
> mke2fs, which are already allowed options for tune2fs.
> 
> Signed-off-by: Drew Davenport <ddavenport@google.com>
> Reviewed-by: Andreas Dilger <adilger@dilger.ca>

Thanks, applied.

					- Ted

Patch hide | download patch | download mbox

diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in
index ef56d9ea..1c8c20f2 100644
--- a/misc/mke2fs.8.in
+++ b/misc/mke2fs.8.in
@@ -738,7 +738,25 @@  will use the default filesystem type
 .IR default .
 .TP
 .BI \-U " UUID"
-Create the filesystem with the specified UUID.
+Set the universally unique identifier (UUID) of the filesystem to
+.IR UUID .
+The format of the UUID is a series of hex digits separated by hyphens, 
+like this: 
+"c1b9d5a2-f162-11cf-9ece-0020afc76f16".  
+The 
+.I UUID
+parameter may also be one of the following:
+.RS 1.2i
+.TP
+.I clear
+clear the filesystem UUID
+.TP
+.I random
+generate a new randomly-generated UUID
+.TP
+.I time
+generate a new time-based UUID
+.RE
 .TP
 .B \-v
 Verbose execution.
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 49c6e94d..b8d078a0 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -2914,7 +2914,14 @@  int main (int argc, char *argv[])
 	 * Parse or generate a UUID for the filesystem
 	 */
 	if (fs_uuid) {
-		if (uuid_parse(fs_uuid, fs->super->s_uuid) !=0) {
+		if ((strcasecmp(fs_uuid, "null") == 0) ||
+		    (strcasecmp(fs_uuid, "clear") == 0)) {
+			uuid_clear(fs->super->s_uuid);
+		} else if (strcasecmp(fs_uuid, "time") == 0) {
+			uuid_generate_time(fs->super->s_uuid);
+		} else if (strcasecmp(fs_uuid, "random") == 0) {
+			uuid_generate(fs->super->s_uuid);
+		} else if (uuid_parse(fs_uuid, fs->super->s_uuid) != 0) {
 			com_err(device_name, 0, "could not parse UUID: %s\n",
 				fs_uuid);
 			exit(1);