diff options
author | Joshua Lock <joshua.g.lock@intel.com> | 2016-10-06 16:45:20 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-10-07 16:43:49 +0100 |
commit | 16f6b020ebea49f012f2e65997a8d464f94d6605 (patch) | |
tree | e1729898dbb5cfde9b53d8eab2d399d897eb7843 /meta/recipes-devtools/pseudo | |
parent | b7e5b9ec4f71a3b8dcb4fe56aa1b971383a6fa27 (diff) | |
download | openembedded-core-contrib-16f6b020ebea49f012f2e65997a8d464f94d6605.tar.gz |
pseudo: backport a patch to fix renameat()
renameat calls under pseudo were losing extended attributes.
Backport the fix for this from pseudo upstream.
[YOCTO '10349]
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/pseudo')
-rw-r--r-- | meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch | 64 | ||||
-rw-r--r-- | meta/recipes-devtools/pseudo/pseudo_1.8.1.bb | 1 |
2 files changed, 65 insertions, 0 deletions
diff --git a/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch b/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch new file mode 100644 index 00000000000..739c03ee6e6 --- /dev/null +++ b/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch @@ -0,0 +1,64 @@ +From d9ab3a0acc94151048498b1ea4d69e7707df1526 Mon Sep 17 00:00:00 2001 +From: Seebs <seebs@seebs.net> +Date: Fri, 30 Sep 2016 10:56:35 -0500 +Subject: [PATCH 3/3] Fix renameat (parallel to previous fix to rename) + +There was a bug in rename(), which was duplicated when renameat() was +implemented, and which got fixed two years ago for rename(), but no +one ever uses renameat() so it didn't get fixed there. Thanks +to Anton Gerasimov <anton@advancedtelematic.com> for the bug report +and patch. + +Signed-off-by: Seebs <seebs@seebs.net> + +Upstream-Status: Backport +Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> + +--- + ChangeLog.txt | 4 ++++ + ports/unix/guts/renameat.c | 7 ++++++- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog.txt b/ChangeLog.txt +index 65b9759..ca04cc0 100644 +--- a/ChangeLog.txt ++++ b/ChangeLog.txt +@@ -1,3 +1,7 @@ ++2016-09-30: ++ * (seebs) Fix rename at, matching fix from ee00f63d for rename. Bug ++ and fix provided by Anton Gerasimov <anton@advancedtelematic.com>. ++ + 2016-09-28: + * (seebs) Send errors to log when daemonizing, but do that a lot + sooner to prevent startup messages which can show up spuriously +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c +index ade0509..d5e36fa 100644 +--- a/ports/unix/guts/renameat.c ++++ b/ports/unix/guts/renameat.c +@@ -11,6 +11,7 @@ + int oldrc, newrc; + int save_errno; + int old_db_entry = 0; ++ int may_unlinked = 0; + + pseudo_debug(PDBGF_FILE, "renameat: %d,%s->%d,%s\n", + olddirfd, oldpath ? oldpath : "<nil>", +@@ -44,10 +45,14 @@ + /* as with unlink, we have to mark that the file may get deleted */ + msg = pseudo_client_op(OP_MAY_UNLINK, 0, -1, newdirfd, newpath, newrc ? NULL : &newbuf); + if (msg && msg->result == RESULT_SUCCEED) ++ may_unlinked = 1; ++ msg = pseudo_client_op(OP_STAT, 0, -1, olddirfd, oldpath, oldrc ? NULL : &oldbuf); ++ if (msg && msg->result == RESULT_SUCCEED) + old_db_entry = 1; ++ + rc = real_renameat(olddirfd, oldpath, newdirfd, newpath); + save_errno = errno; +- if (old_db_entry) { ++ if (may_unlinked) { + if (rc == -1) { + /* since we failed, that wasn't really unlinked -- put + * it back. +-- +2.7.4 + diff --git a/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb b/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb index 67eb298b22e..fb70034b4c2 100644 --- a/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb +++ b/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb @@ -9,6 +9,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz file://0001-Don-t-send-SIGUSR1-to-init.patch \ file://0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch \ file://0002-Use-correct-file-descriptor.patch \ + file://0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch \ " SRC_URI[md5sum] = "ee38e4fb62ff88ad067b1a5a3825bac7" |