[PATCH] erofs-utils: mount: don't overwrite layer_index with -1 again

Gao Xiang hsiangkao at linux.alibaba.com
Tue Oct 7 14:22:20 AEDT 2025


Initialize ocicfg only when nbdsrc.type changes to
EROFSNBD_SOURCE_OCI.

Fixes: 6a7cfdb9cd66 ("erofs-utils: oci: add support for indexing by layer digest")
Cc: Chengyu Zhu <hudsonzhu at tencent.com>
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 mount/main.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/mount/main.c b/mount/main.c
index eb0dd01..e2443f8 100644
--- a/mount/main.c
+++ b/mount/main.c
@@ -83,10 +83,6 @@ static int erofsmount_parse_oci_option(const char *option)
 	char *p;
 	long idx;
 
-	if (oci_cfg->layer_index == 0 && !oci_cfg->blob_digest &&
-	    !oci_cfg->platform && !oci_cfg->username && !oci_cfg->password)
-		oci_cfg->layer_index = -1;
-
 	p = strstr(option, "oci.blob=");
 	if (p != NULL) {
 		p += strlen("oci.blob=");
@@ -147,10 +143,6 @@ static int erofsmount_parse_oci_option(const char *option)
 			}
 		}
 	}
-
-	if (oci_cfg->platform || oci_cfg->username || oci_cfg->password ||
-	    oci_cfg->blob_digest || oci_cfg->layer_index >= 0)
-		nbdsrc.type = EROFSNBD_SOURCE_OCI;
 	return 0;
 }
 #else
@@ -191,6 +183,11 @@ static long erofsmount_parse_flagopts(char *s, long flags, char **more)
 			*comma = '\0';
 
 		if (strncmp(s, "oci", 3) == 0) {
+			/* Initialize ocicfg here iff != EROFSNBD_SOURCE_OCI */
+			if (nbdsrc.type != EROFSNBD_SOURCE_OCI) {
+				nbdsrc.type = EROFSNBD_SOURCE_OCI;
+				nbdsrc.ocicfg.layer_index = -1;
+			}
 			err = erofsmount_parse_oci_option(s);
 			if (err < 0)
 				return err;
-- 
2.43.5



More information about the Linux-erofs mailing list