From 413594ed647400f1b39e05d4f1b12ad846e48800 Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Tue, 16 Aug 2016 16:04:37 +0530 Subject: cluster/afr: Give option to do consistent-io Problem: When tiering/rebalance does migrations and afr with 2-way replica is in picture, migration can read stale data if the source brick goes down and writes to the destination. After this deletion of the file leads to permanent loss of data after migration. Fix: Rebalance/tiering should migrate only when the data is definitely not stale. So introduce an option in afr called consistent-io which will be enabled in migration daemons. BUG: 1306398 Change-Id: I750f65091cc70a3ed4bf3c12f83d0949af43920a Signed-off-by: Pranith Kumar K Reviewed-on: http://review.gluster.org/13425 Reviewed-by: Anuradha Talur Reviewed-by: Krutika Dhananjay Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System --- xlators/cluster/afr/src/afr-dir-read.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'xlators/cluster/afr/src/afr-dir-read.c') diff --git a/xlators/cluster/afr/src/afr-dir-read.c b/xlators/cluster/afr/src/afr-dir-read.c index 2260e5dac26..4e29171482a 100644 --- a/xlators/cluster/afr/src/afr-dir-read.c +++ b/xlators/cluster/afr/src/afr-dir-read.c @@ -88,6 +88,10 @@ afr_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) if (!local) goto out; + local->op = GF_FOP_OPENDIR; + if (!afr_is_consistent_io_possible (local, priv, &op_errno)) + goto out; + fd_ctx = afr_fd_ctx_get (fd, this); if (!fd_ctx) goto out; -- cgit