diff --git a/ChangeLog b/ChangeLog
index 2387d07..99220c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+erofs-utils 1.7.1
+
+ * A quick maintenance release includes the following fixes:
+   - fix a build issue of cross-compilation with autoconf (Sandeep Dhavale);
+   - fix an invalid error code in lib/tar.c (Erik Sjölund);
+   - fix corrupted directories with hardlinks.
+
+ -- Gao Xiang <xiang@kernel.org>  Fri, 20 Oct 2023 00:00:00 +0800
+
 erofs-utils 1.7
 
  * This release includes the following updates:
diff --git a/METADATA b/METADATA
index 73b640a..2b7423b 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@
     type: GIT
     value: "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git"
   }
-  version: "v1.7"
+  version: "v1.7.1"
   license_type: RESTRICTED
   last_upgrade_date {
     year: 2023
-    month: 9
-    day: 25
+    month: 10
+    day: 23
   }
 }
diff --git a/VERSION b/VERSION
index 04ee5d6..8cf9ed8 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-1.7
-2023-09-21
+1.7.1
+2023-10-20
diff --git a/configure.ac b/configure.ac
index 13ee616..a546310 100644
--- a/configure.ac
+++ b/configure.ac
@@ -284,8 +284,8 @@
     return 0;
 ]])],
                              [erofs_cv_max_block_size=`cat conftest.out`],
-                             [],
-                             []))
+                             [erofs_cv_max_block_size=4096],
+                             [erofs_cv_max_block_size=4096]))
 ], [erofs_cv_max_block_size=$MAX_BLOCK_SIZE])
 
 # Configure debug mode
diff --git a/include/erofs/internal.h b/include/erofs/internal.h
index d859905..c1ff582 100644
--- a/include/erofs/internal.h
+++ b/include/erofs/internal.h
@@ -159,8 +159,9 @@
 	union {
 		/* (erofsfuse) runtime flags */
 		unsigned int flags;
-		/* (mkfs.erofs) queued sub-directories blocking dump */
-		u32 subdirs_queued;
+
+		/* (mkfs.erofs) next pointer for directory dumping */
+		struct erofs_inode *next_dirwrite;
 	};
 	unsigned int i_count;
 	struct erofs_sb_info *sbi;
diff --git a/lib/inode.c b/lib/inode.c
index fb062a1..8409ccd 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -1210,7 +1210,6 @@
 			inode->i_parent = dir;
 			erofs_igrab(inode);
 			list_add_tail(&inode->i_subdirs, dirs);
-			++dir->subdirs_queued;
 		}
 		ftype = erofs_mode_to_ftype(inode->i_mode);
 		i_nlink += (ftype == EROFS_FT_DIR);
@@ -1235,17 +1234,10 @@
 	return ret;
 }
 
-static void erofs_mkfs_dump_directory(struct erofs_inode *dir)
-{
-	erofs_write_dir_file(dir);
-	erofs_write_tail_end(dir);
-	dir->bh->op = &erofs_write_inode_bhops;
-}
-
 struct erofs_inode *erofs_mkfs_build_tree_from_path(const char *path)
 {
 	LIST_HEAD(dirs);
-	struct erofs_inode *inode, *root, *parent;
+	struct erofs_inode *inode, *root, *dumpdir;
 
 	root = erofs_iget_from_path(path, true);
 	if (IS_ERR(root))
@@ -1253,9 +1245,9 @@
 
 	(void)erofs_igrab(root);
 	root->i_parent = root;	/* rootdir mark */
-	root->subdirs_queued = 1;
 	list_add(&root->i_subdirs, &dirs);
 
+	dumpdir = NULL;
 	do {
 		int err;
 		char *trimmed;
@@ -1275,15 +1267,23 @@
 			root = ERR_PTR(err);
 			break;
 		}
-		parent = inode->i_parent;
 
-		DBG_BUGON(!parent->subdirs_queued);
-		if (S_ISDIR(inode->i_mode) && !inode->subdirs_queued)
-			erofs_mkfs_dump_directory(inode);
-		if (!--parent->subdirs_queued)
-			erofs_mkfs_dump_directory(parent);
-		erofs_iput(inode);
+		if (S_ISDIR(inode->i_mode)) {
+			inode->next_dirwrite = dumpdir;
+			dumpdir = inode;
+		} else {
+			erofs_iput(inode);
+		}
 	} while (!list_empty(&dirs));
+
+	while (dumpdir) {
+		inode = dumpdir;
+		erofs_write_dir_file(inode);
+		erofs_write_tail_end(inode);
+		inode->bh->op = &erofs_write_inode_bhops;
+		dumpdir = inode->next_dirwrite;
+		erofs_iput(inode);
+	}
 	return root;
 }
 
diff --git a/lib/tar.c b/lib/tar.c
index 0744972..8204939 100644
--- a/lib/tar.c
+++ b/lib/tar.c
@@ -241,7 +241,7 @@
 	val = strtol(ptr, &endp, 8);
 	if ((!val && endp == inp) |
 	     (*endp && *endp != ' '))
-		errno = -EINVAL;
+		errno = EINVAL;
 	return val;
 }
 
