summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch')
-rw-r--r--sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch b/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch
new file mode 100644
index 000000000000..c26085a9dfe7
--- /dev/null
+++ b/sys-cluster/glusterfs/files/glusterfs-3.4.4-cluster-dht-Don-t-do-extra-unref-in-dht-migration-ch.patch
@@ -0,0 +1,48 @@
+From 2b789331dc933b186360fc8cbffb06289ee60ee9 Mon Sep 17 00:00:00 2001
+From: Vijay Bellur <vbellur@redhat.com>
+Date: Tue, 10 Jun 2014 22:21:28 +0530
+Subject: [PATCH 1/3] cluster/dht: Don't do extra unref in dht-migration checks
+
+Problem:
+syncop_open used to perform a ref in syncop_open_cbk so the extra
+unref was needed but now syncop_open_cbk does not take a ref so no
+need to do extra unref.
+
+Fix:
+remove the extra fd_unref and let dht_local_wipe do the final unref.
+
+Change-Id: Ibe8f9a678d456a0c7bff175306068b5cd297ecc4
+BUG: 961615
+Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
+Signed-off-by: Vijay Bellur <vbellur@redhat.com>
+Reviewed-on: http://review.gluster.org/8029
+Tested-by: Gluster Build System <jenkins@build.gluster.com>
+Tested-by: Joe Julian <joe@julianfamily.org>
+Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
+---
+ xlators/cluster/dht/src/dht-helper.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
+index ef29e3f..dd8dc49 100644
+--- a/xlators/cluster/dht/src/dht-helper.c
++++ b/xlators/cluster/dht/src/dht-helper.c
+@@ -802,13 +802,10 @@ dht_migration_complete_check_task (void *data)
+ if (!local->fd)
+ goto out;
+ /* once we detect the migration complete, the fd-ctx is no more
+- required.. delete the ctx, and do one extra 'fd_unref' for open fd */
++ required.. delete the ctx */
+ ret = fd_ctx_del (local->fd, this, NULL);
+- if (!ret) {
+- fd_unref (local->fd);
+- ret = 0;
++ if (!ret)
+ goto out;
+- }
+
+ /* perform open as root:root. There is window between linkfile
+ * creation(root:root) and setattr with the correct uid/gid
+--
+1.9.2
+