From 873c932b1119531355df23bacc3cf6824231804b Mon Sep 17 00:00:00 2001
From: Gao Xiang <hsiangkao@aol.com>
Date: Tue, 24 Mar 2020 16:19:49 +0800
Subject: [PATCH] erofs-utils: avoid using old compatibility type uint

This should fix the following buildroot autobuild issues
with some configration on ARM platform [1]:

compress.c: In function 'vle_compress_one':
compress.c:209:10: error: unknown type name 'uint'
    const uint qh_aligned = round_down(ctx->head, EROFS_BLKSIZ);
          ^~~~
compress.c:210:10: error: unknown type name 'uint'
    const uint qh_after = ctx->head - qh_aligned;
          ^~~~
compress.c: In function 'z_erofs_convert_to_compacted_format':
compress.c:313:8: error: unknown type name 'uint'
  const uint headerpos = Z_EROFS_VLE_EXTENT_ALIGN(inode->inode_isize +
        ^~~~
compress.c:316:8: error: unknown type name 'uint'
  const uint totalidx = (legacymetasize -
        ^~~~

[1] http://autobuild.buildroot.net/results/842a3c6416416d7badf4db9f38e3b231093a786a
Link: https://lore.kernel.org/r/20200324081949.26355-1-hsiangkao@aol.com
Signed-off-by: Gao Xiang <hsiangkao@aol.com>
---
 lib/compress.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/compress.c b/lib/compress.c
index b14ff17..6cc68ed 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -204,8 +204,9 @@ nocompression:
 		len -= count;
 
 		if (!final && ctx->head >= EROFS_CONFIG_COMPR_MAX_SZ) {
-			const uint qh_aligned = round_down(ctx->head, EROFS_BLKSIZ);
-			const uint qh_after = ctx->head - qh_aligned;
+			const unsigned int qh_aligned =
+				round_down(ctx->head, EROFS_BLKSIZ);
+			const unsigned int qh_after = ctx->head - qh_aligned;
 
 			memmove(ctx->queue, ctx->queue + qh_aligned,
 				len + qh_after);
@@ -308,11 +309,11 @@ int z_erofs_convert_to_compacted_format(struct erofs_inode *inode,
 					unsigned int legacymetasize,
 					unsigned int logical_clusterbits)
 {
-	const uint headerpos = Z_EROFS_VLE_EXTENT_ALIGN(inode->inode_isize +
-							inode->xattr_isize) +
-			       sizeof(struct z_erofs_map_header);
-	const uint totalidx = (legacymetasize -
-			       Z_EROFS_LEGACY_MAP_HEADER_SIZE) / 8;
+	const unsigned int mpos = Z_EROFS_VLE_EXTENT_ALIGN(inode->inode_isize +
+							   inode->xattr_isize) +
+				  sizeof(struct z_erofs_map_header);
+	const unsigned int totalidx = (legacymetasize -
+				       Z_EROFS_LEGACY_MAP_HEADER_SIZE) / 8;
 	u8 *out, *in;
 	struct z_erofs_compressindex_vec cv[16];
 	/* # of 8-byte units so that it can be aligned with 32 bytes */
@@ -324,7 +325,7 @@ int z_erofs_convert_to_compacted_format(struct erofs_inode *inode,
 	if (logical_clusterbits > 14)	/* currently not supported */
 		return -ENOTSUP;
 	if (logical_clusterbits == 12) {
-		compacted_4b_initial = (32 - headerpos % 32) / 4;
+		compacted_4b_initial = (32 - mpos % 32) / 4;
 		if (compacted_4b_initial == 32 / 4)
 			compacted_4b_initial = 0;
 
-- 
2.20.1

