[PATCH 7/9] erofs-utils: make erofs_get_dentry() global

Jingbo Xu jefflexu at linux.alibaba.com
Thu Jul 27 14:57:10 AEST 2023


Rename tarerofs_get_dentry() to erofs_get_dentry() and make it global.

Also make `whout` and 'opq' parameter optional when `aufs` is false.

Signed-off-by: Jingbo Xu <jefflexu at linux.alibaba.com>
---
 include/erofs/tar.h |  2 ++
 lib/tar.c           | 14 ++++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/include/erofs/tar.h b/include/erofs/tar.h
index a14f8ac..8699cb5 100644
--- a/include/erofs/tar.h
+++ b/include/erofs/tar.h
@@ -26,4 +26,6 @@ int tarerofs_parse_tar(struct erofs_inode *root, struct erofs_tarfile *tar);
 int tarerofs_reserve_devtable(struct erofs_sb_info *sbi, unsigned int devices);
 int tarerofs_write_devtable(struct erofs_sb_info *sbi, struct erofs_tarfile *tar);
 
+struct erofs_dentry *erofs_get_dentry(struct erofs_inode *pwd, char *path,
+				      bool aufs, bool *whout, bool *opq);
 #endif
diff --git a/lib/tar.c b/lib/tar.c
index 2932980..10ae89c 100644
--- a/lib/tar.c
+++ b/lib/tar.c
@@ -158,15 +158,17 @@ static struct erofs_dentry *tarerofs_mkdir(struct erofs_inode *dir, const char *
 	return d;
 }
 
-static struct erofs_dentry *tarerofs_get_dentry(struct erofs_inode *pwd, char *path,
-					        bool aufs, bool *whout, bool *opq)
+struct erofs_dentry *erofs_get_dentry(struct erofs_inode *pwd, char *path,
+				      bool aufs, bool *whout, bool *opq)
 {
 	struct erofs_dentry *d = NULL;
 	unsigned int len = strlen(path);
 	char *s = path;
 
-	*whout = false;
-	*opq = false;
+	if (aufs) {
+		*whout = false;
+		*opq = false;
+	}
 
 	while (s < path + len) {
 		char *slash = memchr(s, '/', path + len - s);
@@ -611,7 +613,7 @@ restart:
 
 	erofs_dbg("parsing %s (mode %05o)", eh.path, st.st_mode);
 
-	d = tarerofs_get_dentry(root, eh.path, tar->aufs, &whout, &opq);
+	d = erofs_get_dentry(root, eh.path, tar->aufs, &whout, &opq);
 	if (IS_ERR(d)) {
 		ret = PTR_ERR(d);
 		goto out;
@@ -644,7 +646,7 @@ restart:
 		}
 		d->inode = NULL;
 
-		d2 = tarerofs_get_dentry(root, eh.link, tar->aufs, &dumb, &dumb);
+		d2 = erofs_get_dentry(root, eh.link, tar->aufs, &dumb, &dumb);
 		if (IS_ERR(d2)) {
 			ret = PTR_ERR(d2);
 			goto out;
-- 
2.19.1.6.gb485710b



More information about the Linux-erofs mailing list