]> code.ossystems Code Review - openembedded-core.git/commitdiff
pseudo: Fix statx function usage
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 7 Oct 2020 16:16:15 +0000 (17:16 +0100)
committerSteve Sakoman <steve@sakoman.com>
Thu, 28 Jan 2021 14:41:47 +0000 (04:41 -1000)
There is magic in the posts where specific variable names have specific
magic. For that magic to work, "path" needs to be used not "pathname" as
is currently there. Fix this, which fixes path issues on systems using
statx (Ubuntu 20.04 in particular).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9ae80aee98a7bb59c83ac9ebf9d317302507cec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-devtools/pseudo/files/statxfix.patch [new file with mode: 0644]
meta/recipes-devtools/pseudo/pseudo_git.bb

diff --git a/meta/recipes-devtools/pseudo/files/statxfix.patch b/meta/recipes-devtools/pseudo/files/statxfix.patch
new file mode 100644 (file)
index 0000000..c47ff27
--- /dev/null
@@ -0,0 +1,56 @@
+There is magic in the posts where specific variable names have specific
+magic. For that magic to work, "path" needs to be used not "pathname" as
+is currently there. Fix this, which fixes path issues on systems using 
+statx (Ubuntu 20.04 in particular).
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Pending
+
+Index: git/ports/linux/statx/guts/statx.c
+===================================================================
+--- git.orig/ports/linux/statx/guts/statx.c
++++ git/ports/linux/statx/guts/statx.c
+@@ -5,14 +5,14 @@
+  * SPDX-License-Identifier: LGPL-2.1-only
+  *
+  * int
+- * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
++ * statx(int dirfd, const char *path, int flags, unsigned int mask, struct statx *statxbuf) {
+  *    int rc = -1;
+  */
+       pseudo_msg_t *msg;
+       PSEUDO_STATBUF buf;
+       int save_errno;
+-      rc = real_statx(dirfd, pathname, flags, mask, statxbuf);
++      rc = real_statx(dirfd, path, flags, mask, statxbuf);
+       save_errno = errno;
+       if (rc == -1) {
+               return rc;
+@@ -25,16 +25,16 @@
+       buf.st_mode = statxbuf->stx_mode;
+       buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor);
+       buf.st_nlink = statxbuf->stx_nlink;
+-      msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf);
++      msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, path, &buf);
+       if (msg && msg->result == RESULT_SUCCEED) {
+-              pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
++              pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", path, flags, rc, statxbuf->stx_uid);
+               statxbuf->stx_uid = msg->uid;
+               statxbuf->stx_gid = msg->gid;
+               statxbuf->stx_mode = msg->mode;
+               statxbuf->stx_rdev_major = major(msg->rdev);
+               statxbuf->stx_rdev_minor = minor(msg->rdev);
+       } else {
+-              pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
++              pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", path, flags, rc, statxbuf->stx_uid);
+       }
+       errno = save_errno;
+ /*    return rc;
+Index: git/ports/linux/statx/wrapfuncs.in
+===================================================================
+--- git.orig/ports/linux/statx/wrapfuncs.in
++++ git/ports/linux/statx/wrapfuncs.in
+@@ -1 +1 @@
+-int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf);
++int statx(int dirfd, const char *path, int flags, unsigned int mask, struct statx *statxbuf);
index bc20a2f134e4fc3f0660ec37c7a05587bf059138..c79fe92bc39cf26caa3ea83024482e1367979b73 100644 (file)
@@ -9,6 +9,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \
            file://xattr_fix.patch \
            file://mayunlink.patch \
            file://pathfix.patch \
+           file://statxfix.patch \
            file://fallback-passwd \
            file://fallback-group \
            "