aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch')
-rw-r--r--meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch b/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch
deleted file mode 100644
index 4e072e6c40..0000000000
--- a/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 0d9071f3090bbd7880558f3b488b236ac19b44fc Mon Sep 17 00:00:00 2001
-From: seebs <seebs@seebs.net>
-Date: Thu, 28 Jul 2016 14:02:12 -0500
-Subject: [PATCH 1/2] Fix xattr performance
-
-When deleting files, we *do* know the inode and attribute, most of the
-time, so we pass those in whenever possible. The full purge of unmatched
-xattrs should not happen when the correct dev/ino are believed to be known.
-
-Signed-off-by: Seebs <seebs@seebs.net>
-
-[YOCTO #9929]
-Upstream-Status: Backport (0d9071f3090bbd7880558f3b488b236ac19b44fc)
-Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
----
- ChangeLog.txt | 3 +++
- pseudo.c | 11 ++++++++---
- pseudo_db.c | 15 +++++++++------
- pseudo_db.h | 2 +-
- 4 files changed, 21 insertions(+), 10 deletions(-)
-
-diff --git a/ChangeLog.txt b/ChangeLog.txt
-index 131f163..d6359ca 100644
---- a/ChangeLog.txt
-+++ b/ChangeLog.txt
-@@ -1,3 +1,6 @@
-+2016-07-28:
-+ * (seebs) Fix performance issue on deletion with xattr changes.
-+
- 2016-07-08:
- * (RP) release 1.8.1
- * (joshuagl) Fix log table creation issue
-diff --git a/pseudo.c b/pseudo.c
-index 52f649f..db1c400 100644
---- a/pseudo.c
-+++ b/pseudo.c
-@@ -600,7 +600,12 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
- if (by_path.deleting != 0) {
- pseudo_debug(PDBGF_FILE, "inode mismatch for '%s' -- old one was marked for deletion, deleting.\n",
- msg->path);
-- pdb_did_unlink_file(msg->path, by_path.deleting);
-+ /* in this case, we don't trust the
-+ * existing entries, so we will do the
-+ * more expensive sweep for stray
-+ * xattrs.
-+ */
-+ pdb_did_unlink_file(msg->path, NULL, by_path.deleting);
- } else {
- pseudo_diag("inode mismatch: '%s' ino %llu in db, %llu in request.\n",
- msg->path,
-@@ -698,7 +703,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
- if (by_ino.deleting != 0) {
- pseudo_debug(PDBGF_FILE, "inode mismatch for '%s' -- old one was marked for deletion, deleting.\n",
- msg->path);
-- pdb_did_unlink_file(path_by_ino, by_ino.deleting);
-+ pdb_did_unlink_file(path_by_ino, &by_ino, by_ino.deleting);
- } else {
- pseudo_diag("path mismatch [%d link%s]: ino %llu db '%s' req '%s'.\n",
- msg->nlink,
-@@ -930,7 +935,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
- }
- break;
- case OP_DID_UNLINK:
-- pdb_did_unlink_file(msg->path, msg->client);
-+ pdb_did_unlink_file(msg->path, msg, msg->client);
- break;
- case OP_CANCEL_UNLINK:
- pdb_cancel_unlink_file(msg);
-diff --git a/pseudo_db.c b/pseudo_db.c
-index 289bb29..e7dd193 100644
---- a/pseudo_db.c
-+++ b/pseudo_db.c
-@@ -1848,7 +1848,7 @@ pdb_did_unlink_files(int deleting) {
-
- /* confirm deletion of a specific file by a given client */
- int
--pdb_did_unlink_file(char *path, int deleting) {
-+pdb_did_unlink_file(char *path, pseudo_msg_t *msg, int deleting) {
- static sqlite3_stmt *delete_exact;
- int rc, exact;
- char *sql_delete_exact = "DELETE FROM files WHERE path = ? AND deleting = ?;";
-@@ -1878,11 +1878,14 @@ pdb_did_unlink_file(char *path, int deleting) {
- exact = sqlite3_changes(file_db);
- pseudo_debug(PDBGF_DB, "(exact %d)\n", exact);
- sqlite3_reset(delete_exact);
-- sqlite3_clear_bindings(delete_exact);
-- /* we have to clean everything because we don't know for sure the
-- * device/inode...
-- */
-- pdb_clear_unused_xattrs();
-+ if (msg) {
-+ pdb_clear_xattrs(msg);
-+ } else {
-+ /* we have to clean everything because we don't know for sure the
-+ * device/inode...
-+ */
-+ pdb_clear_unused_xattrs();
-+ }
- return rc != SQLITE_DONE;
- }
-
-diff --git a/pseudo_db.h b/pseudo_db.h
-index a54f3c1..1b2599c 100644
---- a/pseudo_db.h
-+++ b/pseudo_db.h
-@@ -39,7 +39,7 @@ typedef struct {
-
- extern int pdb_maybe_backup(void);
- extern int pdb_cancel_unlink_file(pseudo_msg_t *msg);
--extern int pdb_did_unlink_file(char *path, int deleting);
-+extern int pdb_did_unlink_file(char *path, pseudo_msg_t *msg, int deleting);
- extern int pdb_did_unlink_files(int deleting);
- extern int pdb_link_file(pseudo_msg_t *msg);
- extern int pdb_may_unlink_file(pseudo_msg_t *msg, int deleting);
---
-2.7.4
-