diff options
author | Sakshi <sabansal@redhat.com> | 2017-01-23 12:11:49 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2017-05-31 14:13:01 +0000 |
commit | b9406e210717621bc672a63c1cbd1b0183834056 (patch) | |
tree | 8bf3d1787d928c121e52f4b9820a27a47957361c /xlators/cluster/dht/src/dht-helper.c | |
parent | 57b0a4a374a604079f37a9d9d9fffb09a718c010 (diff) |
cluster/dht: Make optimal usage of buffer provided with readdir(p)
dht_readdirp must unwind with list of entries only after
the entire buffer requested by kernel is filled to avoid
extra syscalls occuring when returning partially filled
buffer. Also wind readdir call to next subvol on reaching
EOD for directory on that subvol to avoid extra network call.
Change-Id: If2e1a2722f813d95457c7542bff25fef56c7a041
BUG: 1356453
Signed-off-by: Sakshi <sabansal@redhat.com>
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: https://review.gluster.org/12271
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Susant Palai <spalai@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-helper.c')
-rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 38965298325..08825cf0b93 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -484,6 +484,8 @@ dht_local_wipe (xlator_t *this, dht_local_t *local) if (local->ret_cache) GF_FREE (local->ret_cache); + gf_dirent_free (&local->entries); + mem_put (local); } @@ -523,6 +525,7 @@ dht_local_init (call_frame_t *frame, loc_t *loc, fd_t *fd, glusterfs_fop_t fop) inode); } + INIT_LIST_HEAD (&local->entries.list); frame->local = local; out: |