Index: uspace/lib/ext4/src/filesystem.c
===================================================================
--- uspace/lib/ext4/src/filesystem.c	(revision b209135fccd9282dabef632255a0a7e0b536ab6c)
+++ uspace/lib/ext4/src/filesystem.c	(revision df8eababb31187582db57d47cd83f7ecfb4f1ee9)
@@ -249,8 +249,8 @@
 /** Create new filesystem.
  *
- * @param ver Filesystem version
- * @param service_id Block device where to create new filesystem
- */
-errno_t ext4_filesystem_create(ext4_cfg_ver_t ver, service_id_t service_id)
+ * @param cfg Configuration of new file system
+ * @param service_id Block device where to create new file system
+ */
+errno_t ext4_filesystem_create(ext4_cfg_t *cfg, service_id_t service_id)
 {
 	errno_t rc;
@@ -282,5 +282,5 @@
 
 	/* Create superblock */
-	rc = ext4_superblock_create(dev_bsize, dev_nblocks, ver, &superblock);
+	rc = ext4_superblock_create(dev_bsize, dev_nblocks, cfg, &superblock);
 	if (rc != EOK)
 		goto err;
Index: uspace/lib/ext4/src/superblock.c
===================================================================
--- uspace/lib/ext4/src/superblock.c	(revision b209135fccd9282dabef632255a0a7e0b536ab6c)
+++ uspace/lib/ext4/src/superblock.c	(revision df8eababb31187582db57d47cd83f7ecfb4f1ee9)
@@ -912,8 +912,28 @@
  * @param sb   Superblock
  * @param name New name of the volume
- */
-void ext4_superblock_set_volume_name(ext4_superblock_t *sb, const char *name)
-{
-	memcpy(sb->volume_name, name, sizeof(sb->volume_name));
+ * @return EOK on success or error code
+ */
+errno_t ext4_superblock_set_volume_name(ext4_superblock_t *sb, const char *name)
+{
+	size_t off;
+	wchar_t ch;
+	size_t wi;
+
+	off = 0;
+	wi = 0;
+	while (wi < sizeof(sb->volume_name)) {
+		ch = str_decode(name, &off, STR_NO_LIMIT);
+		if (ch == 0)
+			break;
+		if (ch > 255)
+			return EINVAL;
+
+		sb->volume_name[wi++] = ch;
+	}
+
+	while (wi < sizeof(sb->volume_name))
+		sb->volume_name[wi++] = '\0';
+
+	return EOK;
 }
 
@@ -1475,10 +1495,10 @@
  * @param dev_bsize Device block size
  * @param dev_bcnt Device number of blocks
- * @param ver Filesystem version
+ * @param cfg Configuration of new file system
  * @param rsb Place to store pointer to newly allocated superblock
  * @return EOK on success or error code
  */
 errno_t ext4_superblock_create(size_t dev_bsize, uint64_t dev_bcnt,
-    ext4_cfg_ver_t ver, ext4_superblock_t **rsb)
+    ext4_cfg_t *cfg, ext4_superblock_t **rsb)
 {
 	ext4_superblock_t *sb;
@@ -1579,5 +1599,5 @@
 	ext4_superblock_set_check_interval(sb, 0);
 	ext4_superblock_set_creator_os(sb, EXT4_SUPERBLOCK_OS_LINUX);
-	if (ver >= extver_ext2)
+	if (cfg->version >= extver_ext2)
 		ext4_superblock_set_rev_level(sb, EXT4_DYNAMIC_REV);
 	else
@@ -1586,5 +1606,5 @@
 	ext4_superblock_set_def_resgid(sb, 0);
 
-	if (ver >= extver_ext2) {
+	if (cfg->version >= extver_ext2) {
 		/* Dynamic rev */
 		ext4_superblock_set_first_inode(sb, EXT4_REV0_FIRST_INO);
@@ -1596,6 +1616,9 @@
 
 		ext4_superblock_set_uuid(sb, &uuid);
-		/* 16-byte Latin-1 string padded with null characters */
-		ext4_superblock_set_volume_name(sb, "HelenOS-Ext4\0\0\0\0");
+
+		rc = ext4_superblock_set_volume_name(sb, cfg->volume_name);
+		if (rc != EOK)
+			goto error;
+
 		/* 64-byte Latin-1 string padded with null characters */
 		ext4_superblock_set_last_mounted(sb,
