diff --git a/lustre/mgs/lproc_mgs.c b/lustre/mgs/lproc_mgs.c
index acfab55434058c8fe2e7bd64c2bac0d39d912495..2453dc34009212608149469ba9027619a188ef76 100644
--- a/lustre/mgs/lproc_mgs.c
+++ b/lustre/mgs/lproc_mgs.c
@@ -103,10 +103,10 @@ static int mgs_live_seq_show(struct seq_file *seq, void *v)
                    fsdb->fsdb_flags, fsdb->fsdb_gen);
         for (i = 0; i < INDEX_MAP_SIZE * 8; i++)
                  if (test_bit(i, fsdb->fsdb_mdt_index_map)) 
-                         seq_printf(seq, "%.8s-MDT%04x\n", fsdb->fsdb_name, i);
+                         seq_printf(seq, "%s-MDT%04x\n", fsdb->fsdb_name, i);
         for (i = 0; i < INDEX_MAP_SIZE * 8; i++)
                  if (test_bit(i, fsdb->fsdb_ost_index_map)) 
-                         seq_printf(seq, "%.8s-OST%04x\n", fsdb->fsdb_name, i);
+                         seq_printf(seq, "%s-OST%04x\n", fsdb->fsdb_name, i);
 
         up(&fsdb->fsdb_sem);
         return 0;
diff --git a/lustre/mgs/mgs_internal.h b/lustre/mgs/mgs_internal.h
index a13bd95e48a4f13bb616488e5a9cfca8fb5e000f..81c94ad99f603e2f68bf39d34f64042335fb111e 100644
--- a/lustre/mgs/mgs_internal.h
+++ b/lustre/mgs/mgs_internal.h
@@ -29,7 +29,7 @@ int class_dentry_readdir(struct obd_device *obd, struct dentry *dir,
 #define FSDB_OLDLOG14   0x0002  /* log starts in old (1.4) style */
 
 struct fs_db {
-        char              fsdb_name[8];
+        char              fsdb_name[9];
         struct list_head  fsdb_list;           /* list of databases */
         struct semaphore  fsdb_sem;
         void             *fsdb_ost_index_map;  /* bitmap of used indicies */
diff --git a/lustre/mgs/mgs_llog.c b/lustre/mgs/mgs_llog.c
index 4dadf738806e4d4783017c791834e98801b02827..e062bfcdb85d562a72b160d6320ccc3f70391d76 100644
--- a/lustre/mgs/mgs_llog.c
+++ b/lustre/mgs/mgs_llog.c
@@ -292,6 +292,7 @@ static struct fs_db *mgs_new_fsdb(struct obd_device *obd, char *fsname)
         }
         
         strncpy(fsdb->fsdb_name, fsname, sizeof(fsdb->fsdb_name));
+        fsdb->fsdb_name[sizeof(fsdb->fsdb_name) - 1] = 0;
         rc = name_create(&fsdb->fsdb_mdtlov, fsname, "-mdtlov");
         if (rc) 
                 GOTO(err, rc);
diff --git a/lustre/tests/cfg/local.sh b/lustre/tests/cfg/local.sh
index 475847f819b38d67a238ff07a05d765cf62c13f4..2d2461364b35949488763dd5ed7ff942067c1b15 100644
--- a/lustre/tests/cfg/local.sh
+++ b/lustre/tests/cfg/local.sh
@@ -1,4 +1,4 @@
-FSNAME=lustre
+FSNAME=${FSNAME:-lustre}
 
 # facet hosts
 mds_HOST=${mds_HOST:-`hostname`}
diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh
index 9fc1b3a300198e4a74988b03ae97d684420b8dfc..546a0d89ddc6f07e3861dcc9974b1f368eb9493a 100644
--- a/lustre/tests/conf-sanity.sh
+++ b/lustre/tests/conf-sanity.sh
@@ -820,17 +820,19 @@ test_23() {
 
 test_24a() {
 	local fs2mds_HOST=$mds_HOST
-        add fs2mds $MDS_MKFS_OPTS --fsname=${FSNAME}2 --nomgs --mgsnode=$MGSNID --reformat ${MDSDEV}_2 || exit 10
+	# test 8-char fsname as well
+	local FSNAME2=test1234
+        add fs2mds $MDS_MKFS_OPTS --fsname=${FSNAME2} --nomgs --mgsnode=$MGSNID --reformat ${MDSDEV}_2 || exit 10
 
 	local fs2ost_HOST=$ost_HOST
 	local fs2ostdev=$(ostdevname 1)_2
-	add fs2ost $OST_MKFS_OPTS --fsname=${FSNAME}2 --reformat $fs2ostdev || exit 10
+	add fs2ost $OST_MKFS_OPTS --fsname=${FSNAME2} --reformat $fs2ostdev || exit 10
 
 	setup
 	start fs2mds ${MDSDEV}_2 $MDS_MOUNT_OPTS
 	start fs2ost $fs2ostdev $OST_MOUNT_OPTS
 	mkdir -p $MOUNT2
-	mount -t lustre $MGSNID:/${FSNAME}2 $MOUNT2 || return 1
+	mount -t lustre $MGSNID:/${FSNAME2} $MOUNT2 || return 1
 	# 1 still works
 	check_mount || return 2
 	# files written on 1 should not show up on 2