Skip to contentSkip to conversation

mkfs.gfs2: Allow longer cluster names

PATCH New Paul Evans 3 participants 3 messages Apr 22, 2015

lore
Share & tools
lore

Paul Evans

author
#0 lore raw

PATCH 1/1 mkfs.gfs2: Allow longer cluster names

Increase the enforced limit for cluster name to 32 bytes and file system name to 30 bytes for mkfs.gfs2 (was previously 16 + 16 bytes).

Also increased this limit in tunegfs2 when labelling gfs2 file systems.

Updated the formation in the man pages along with adding a new test case for mkfs.gfs2 to validate the increased cluster/file system name support.

---
 gfs2/man/mkfs.gfs2.8  | 4 ++--
 gfs2/mkfs/main_mkfs.c | 4 ++--
 gfs2/tune/super.c     | 2 +-
 tests/mkfs.at         | 8 ++++++++
 4 files changed, 13 insertions(+), 5 deletions(-)
gfs2/man/mkfs.gfs2.8 +2 -2
index ceb6f38..f480082 100644
@@ -101,9 +101,9 @@ bigger file systems will have bigger RGs for better performance.
 The lock table field appropriate to the lock module you're using.
 It is \fIclustername:fsname\fR.
 Clustername must match that in cluster.conf; only members of this
-cluster are permitted to use this file system.
+cluster are permitted to use this file system (1 to 32 characters).
 Fsname is a unique file system name used to distinguish this GFS2 file
-system from others created (1 to 16 characters).  Lock_nolock doesn't
+system from others created (1 to 30 characters).  Lock_nolock doesn't
 use this field. Valid \fIclustername\fRs and \fIfsname\fRs may only contain
 alphanumeric characters, hyphens (-) and underscores (_).
 .TP
gfs2/mkfs/main_mkfs.c +2 -2
index 0636f0b..3fab08c 100644
@@ -398,7 +398,7 @@ static void test_locking(const char *lockproto, const char *locktable)
 
 		if (c == locktable)
 			die("%s %s\n", errprefix, _("cluster name is missing"));
-		if (c - locktable > 16)
+		if (c - locktable > 32)
 			die("%s %s\n", errprefix, _("cluster name is too long"));
 
 		c++;
@@ -406,7 +406,7 @@ static void test_locking(const char *lockproto, const char *locktable)
 			die("%s %s\n", errprefix, _("contains more than one colon"));
 		if (!strlen(c))
 			die("%s %s\n", errprefix, _("file system name is missing"));
-		if (strlen(c) > 16)
+		if (strlen(c) > 30)
 			die("%s %s\n", errprefix, _("file system name is too long"));
 	} else {
 		die( _("Invalid lock protocol: %s\n"), lockproto);
gfs2/tune/super.c +1 -1
index cbd0026..560ce68 100644
@@ -194,7 +194,7 @@ int change_locktable(struct tunegfs2 *tfs, const char *locktable)
 			fprintf(stderr, "%s %s\n", errpre, _("missing colon"));
 			return EX_DATAERR;
 		}
-		if (strlen(++fsname) > 16) {
+		if (strlen(++fsname) > 30) {
 			fprintf(stderr, "%s %s\n", errpre, _("file system name is too long"));
 			return EX_DATAERR;
 		}
tests/mkfs.at +8 -0
index 438184c..e25b6dc 100644
@@ -89,3 +89,11 @@ AT_SETUP([Min. quota change file size])
 AT_KEYWORDS(mkfs.gfs2 mkfs)
 GFS_FSCK_CHECK([$GFS_MKFS -p lock_nolock -c 1 $GFS_TGT])
 AT_CLEANUP
+
+AT_SETUP([Incr. cluster/file system name validation])
+AT_KEYWORDS(mkfs.gfs2 mkfs)
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "" $GFS_TGT], 255, [ignore], [ignore])
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "quite_long_cluster_name_test_here:intec34p" $GFS_TGT], 255, [ignore], [ignore])
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "financial_cluster:this_time_we_test_fs_naming_len" $GFS_TGT], 255, [ignore], [ignore])
+GFS_FSCK_CHECK([$GFS_MKFS -p lock_dlm -t "a_really_long_named_cluster_here:concurrently_lets_check_fs_len" $GFS_TGT])
+AT_CLEANUP
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/1 mkfs.gfs2: Allow longer cluster names

Quoted 4 lines · Paul Evans

Increase the enforced limit for cluster name to 32 bytes and file system name to 30 bytes for mkfs.gfs2 (was previously 16 + 16 bytes).

Quoted 8 lines

Also increased this limit in tunegfs2 when labelling gfs2 file systems.

Updated the formation in the man pages along with adding a new test case for mkfs.gfs2 to validate the increased cluster/file system name support.

Looks good to me.

Thanks,
Andy

Quoted 75 lines
---
  gfs2/man/mkfs.gfs2.8  | 4 ++--
  gfs2/mkfs/main_mkfs.c | 4 ++--
  gfs2/tune/super.c     | 2 +-
  tests/mkfs.at         | 8 ++++++++
  4 files changed, 13 insertions(+), 5 deletions(-)
gfs2/man/mkfs.gfs2.8 +2 -2
index ceb6f38..f480082 100644
@@ -101,9 +101,9 @@ bigger file systems will have bigger RGs for better performance.
  The lock table field appropriate to the lock module you're using.
  It is \fIclustername:fsname\fR.
  Clustername must match that in cluster.conf; only members of this
-cluster are permitted to use this file system.
+cluster are permitted to use this file system (1 to 32 characters).
  Fsname is a unique file system name used to distinguish this GFS2 file
-system from others created (1 to 16 characters).  Lock_nolock doesn't
+system from others created (1 to 30 characters).  Lock_nolock doesn't
  use this field. Valid \fIclustername\fRs and \fIfsname\fRs may only contain
  alphanumeric characters, hyphens (-) and underscores (_).
  .TP
gfs2/mkfs/main_mkfs.c +2 -2
index 0636f0b..3fab08c 100644
@@ -398,7 +398,7 @@ static void test_locking(const char *lockproto, const char *locktable)
 
  		if (c == locktable)
  			die("%s %s\n", errprefix, _("cluster name is missing"));
-		if (c - locktable > 16)
+		if (c - locktable > 32)
  			die("%s %s\n", errprefix, _("cluster name is too long"));
 
  		c++;
@@ -406,7 +406,7 @@ static void test_locking(const char *lockproto, const char *locktable)
  			die("%s %s\n", errprefix, _("contains more than one colon"));
  		if (!strlen(c))
  			die("%s %s\n", errprefix, _("file system name is missing"));
-		if (strlen(c) > 16)
+		if (strlen(c) > 30)
  			die("%s %s\n", errprefix, _("file system name is too long"));
  	} else {
  		die( _("Invalid lock protocol: %s\n"), lockproto);
gfs2/tune/super.c +1 -1
index cbd0026..560ce68 100644
@@ -194,7 +194,7 @@ int change_locktable(struct tunegfs2 *tfs, const char *locktable)
  			fprintf(stderr, "%s %s\n", errpre, _("missing colon"));
  			return EX_DATAERR;
  		}
-		if (strlen(++fsname) > 16) {
+		if (strlen(++fsname) > 30) {
  			fprintf(stderr, "%s %s\n", errpre, _("file system name is too long"));
  			return EX_DATAERR;
  		}
tests/mkfs.at +8 -0
index 438184c..e25b6dc 100644
@@ -89,3 +89,11 @@ AT_SETUP([Min. quota change file size])
  AT_KEYWORDS(mkfs.gfs2 mkfs)
  GFS_FSCK_CHECK([$GFS_MKFS -p lock_nolock -c 1 $GFS_TGT])
  AT_CLEANUP
+
+AT_SETUP([Incr. cluster/file system name validation])
+AT_KEYWORDS(mkfs.gfs2 mkfs)
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "" $GFS_TGT], 255, [ignore], [ignore])
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "quite_long_cluster_name_test_here:intec34p" $GFS_TGT], 255, [ignore], [ignore])
+AT_CHECK([$GFS_MKFS -p lock_dlm -t "financial_cluster:this_time_we_test_fs_naming_len" $GFS_TGT], 255, [ignore], [ignore])
+GFS_FSCK_CHECK([$GFS_MKFS -p lock_dlm -t "a_really_long_named_cluster_here:concurrently_lets_check_fs_len" $GFS_TGT])
+AT_CLEANUP
#2 lore raw

PATCH 1/1 mkfs.gfs2: Allow longer cluster names

In reply to Paul Evans

----- Original Message -----

Quoted 11 lines

Increase the enforced limit for cluster name to 32 bytes and file system name to 30 bytes for mkfs.gfs2 (was previously 16 + 16 bytes).

Also increased this limit in tunegfs2 when labelling gfs2 file systems.

Updated the formation in the man pages along with adding a new test case for mkfs.gfs2 to validate the increased cluster/file system name support.

Quoted 7 lines
---
 gfs2/man/mkfs.gfs2.8  | 4 ++--
 gfs2/mkfs/main_mkfs.c | 4 ++--
 gfs2/tune/super.c     | 2 +-
 tests/mkfs.at         | 8 ++++++++
 4 files changed, 13 insertions(+), 5 deletions(-)

Hi,

ACK

Bob Peterson
Red Hat File Systems