summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranith Kumar K <pkarampu@redhat.com>2018-03-19 15:26:40 +0530
committerPranith Kumar K <pkarampu@redhat.com>2018-03-21 10:36:32 +0530
commit448dec703d603a150dc1f1cc231c8389ab2fb2ea (patch)
tree3969419ef820ff69bbff49596b63f32ae2c833e4
parent2da6650dfa402143c7b9ea0e67bbda79d0475ddd (diff)
cluster/afr: Switch to active-fd-count for open-fd checks
BUG: 1557932 Change-Id: I3783e41b3812267bc10c0d05d062a31396ce135b Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
-rw-r--r--tests/basic/afr/afr-no-fsync.t20
-rw-r--r--xlators/cluster/afr/src/afr-inode-write.c16
2 files changed, 28 insertions, 8 deletions
diff --git a/tests/basic/afr/afr-no-fsync.t b/tests/basic/afr/afr-no-fsync.t
new file mode 100644
index 00000000000..0966d9b0a11
--- /dev/null
+++ b/tests/basic/afr/afr-no-fsync.t
@@ -0,0 +1,20 @@
+#!/bin/bash
+#Tests that sequential write workload doesn't lead to FSYNCs
+
+. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../volume.rc
+
+cleanup;
+
+TEST glusterd
+TEST pidof glusterd
+TEST $CLI volume create $V0 replica 3 $H0:$B0/brick{0,1,3}
+TEST $CLI volume set $V0 features.shard on
+TEST $CLI volume set $V0 performance.flush-behind off
+TEST $CLI volume start $V0
+TEST $CLI volume profile $V0 start
+TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0;
+TEST dd if=/dev/zero of=$M0/a bs=1M count=500
+TEST ! "$CLI volume profile $V0 info incremental | grep FSYNC"
+
+cleanup;
diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c
index 9cab08c653a..9a9ef2e90a5 100644
--- a/xlators/cluster/afr/src/afr-inode-write.c
+++ b/xlators/cluster/afr/src/afr-inode-write.c
@@ -317,10 +317,10 @@ afr_inode_write_fill (call_frame_t *frame, xlator_t *this, int child_index,
if (ret || !write_is_append)
local->append_write = _gf_false;
- ret = dict_get_uint32 (xdata, GLUSTERFS_OPEN_FD_COUNT,
- &open_fd_count);
- if (ret == -1)
- goto unlock;
+ ret = dict_get_uint32 (xdata, GLUSTERFS_ACTIVE_FD_COUNT,
+ &open_fd_count);
+ if (ret < 0)
+ goto unlock;
if (open_fd_count > local->open_fd_count) {
local->open_fd_count = open_fd_count;
local->update_open_fd_count = _gf_true;
@@ -532,10 +532,10 @@ afr_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
if (ret)
goto out;
- if (dict_set_uint32 (local->xdata_req, GLUSTERFS_OPEN_FD_COUNT, 4)) {
- op_errno = ENOMEM;
- goto out;
- }
+ if (dict_set_uint32 (local->xdata_req, GLUSTERFS_ACTIVE_FD_COUNT, 4)) {
+ op_errno = ENOMEM;
+ goto out;
+ }
if (dict_set_uint32 (local->xdata_req, GLUSTERFS_WRITE_IS_APPEND, 4)) {
op_errno = ENOMEM;