diff options
author | Zhou Zhengping <johnzzpcrystal@gmail.com> | 2016-07-16 18:02:55 -0400 |
---|---|---|
committer | Jeff Darcy <jdarcy@redhat.com> | 2016-07-17 06:35:35 -0700 |
commit | eb4ea14dcdf6dc2f741a2ed14150ee6ea83b92ce (patch) | |
tree | 291daf94217c5cc18e3f0b51fb7edc8835f55f3d | |
parent | 3c485cb896837c8e362fd0b094325002ce806ac4 (diff) |
io-threads.c: add serveral fops support in io-threads
1.add lease, seek, getactivelk, setactivelk support in io-threads
2.add several missing function declations in defaults.h, the declation
of function default_getactivelk_failure_cbk needed by io-threads.c
Signed-off-by: Zhou Zhengping <johnzzpcrystal@gmail.com>
Change-Id: Ie7a56569b4c29cdc6984d31738b484d2d6d83557
BUG: 1357210
Reviewed-on: http://review.gluster.org/14935
Tested-by: Zhou Zhengping <johnzzpcrystal@gmail.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
-rw-r--r-- | libglusterfs/src/defaults.h | 51 | ||||
-rw-r--r-- | xlators/performance/io-threads/src/io-threads.c | 53 |
2 files changed, 85 insertions, 19 deletions
diff --git a/libglusterfs/src/defaults.h b/libglusterfs/src/defaults.h index 2fc6a46de1f..50f1909b90b 100644 --- a/libglusterfs/src/defaults.h +++ b/libglusterfs/src/defaults.h @@ -591,6 +591,14 @@ int32_t default_seek_resume (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t default_lease_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, struct gf_lease *lease, dict_t *xdata); +int32_t +default_getactivelk_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + dict_t *xdata); + +int32_t +default_setactivelk_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, + lock_migration_info_t *locklist, dict_t *xdata); + /* _cbk_resume */ int32_t @@ -856,6 +864,14 @@ int32_t default_zerofill_cbk_resume (call_frame_t * frame, void *cookie, xlator_t * this, int32_t op_ret, int32_t op_errno, struct iatt *pre, struct iatt *post, dict_t * xdata); +int32_t +default_ipc_cbk_resume (call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, dict_t *xdata); + +int32_t +default_seek_cbk_resume (call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, off_t offset, + dict_t *xdata); int32_t default_getspec_cbk_resume (call_frame_t * frame, void *cookie, @@ -868,13 +884,16 @@ default_lease_cbk_resume (call_frame_t *frame, void *cookie, xlator_t *this, struct gf_lease *lease, dict_t *xdata); int32_t -default_getactivelk_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xdata); +default_getactivelk_cbk_resume (call_frame_t *frame, void *cookie, + xlator_t *this, int32_t op_ret, + int32_t op_errno, + lock_migration_info_t *locklist, + dict_t *xdata); int32_t -default_setactivelk_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, - lock_migration_info_t *locklist, dict_t *xdata); - +default_setactivelk_cbk_resume (call_frame_t *frame, void *cookie, + xlator_t *this, int32_t op_ret, + int32_t op_errno, dict_t *xdata); /* _CBK */ int32_t @@ -1114,6 +1133,17 @@ default_lease_cbk (call_frame_t *frame, void *cookie, xlator_t *this, struct gf_lease *lease, dict_t *xdata); int32_t +default_getactivelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, + lock_migration_info_t *locklist, + dict_t *xdata); + +int32_t +default_setactivelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, + int32_t op_ret, int32_t op_errno, dict_t *xdata); + + +int32_t default_lookup_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t @@ -1251,20 +1281,19 @@ int32_t default_getspec_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t +default_ipc_failure_cbk (call_frame_t *frame, int32_t op_errno); + +int32_t default_seek_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t default_lease_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t -default_getactivelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, - lock_migration_info_t *locklist, - dict_t *xdata); +default_getactivelk_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t -default_setactivelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this, - int32_t op_ret, int32_t op_errno, dict_t *xdata); +default_setactivelk_failure_cbk (call_frame_t *frame, int32_t op_errno); int32_t default_mem_acct_init (xlator_t *this); diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index c81a97d8a39..dd2aba3fd0a 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -329,9 +329,10 @@ iot_schedule (call_frame_t *frame, xlator_t *this, call_stub_t *stub) case GF_FOP_XATTROP: case GF_FOP_FXATTROP: case GF_FOP_RCHECKSUM: - case GF_FOP_FALLOCATE: - case GF_FOP_DISCARD: + case GF_FOP_FALLOCATE: + case GF_FOP_DISCARD: case GF_FOP_ZEROFILL: + case GF_FOP_SEEK: pri = IOT_PRI_LO; break; @@ -715,7 +716,7 @@ iot_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, } int -iot_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, +iot_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, off_t offset, size_t len, dict_t *xdata) { IOT_FOP (fallocate, frame, this, fd, mode, offset, len, xdata); @@ -723,7 +724,7 @@ iot_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, } int -iot_discard(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +iot_discard (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, size_t len, dict_t *xdata) { IOT_FOP (discard, frame, this, fd, offset, len, xdata); @@ -731,13 +732,45 @@ iot_discard(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, } int -iot_zerofill(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +iot_zerofill (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, off_t len, dict_t *xdata) { IOT_FOP (zerofill, frame, this, fd, offset, len, xdata); return 0; } +int +iot_seek (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, + gf_seek_what_t what, dict_t *xdata) +{ + IOT_FOP (seek, frame, this, fd, offset, what, xdata); + return 0; +} + +int +iot_lease (call_frame_t *frame, xlator_t *this, loc_t *loc, + struct gf_lease *lease, dict_t *xdata) +{ + IOT_FOP (lease, frame, this, loc, lease, xdata); + return 0; +} + +int +iot_getactivelk (call_frame_t *frame, xlator_t *this, + loc_t *loc, dict_t *xdata) +{ + IOT_FOP (getactivelk, frame, this, loc, xdata); + return 0; +} + +int +iot_setactivelk (call_frame_t *frame, xlator_t *this, loc_t *loc, + lock_migration_info_t *locklist, dict_t *xdata) +{ + IOT_FOP (setactivelk, frame, this, loc, locklist, xdata); + return 0; +} + int __iot_workers_scale (iot_conf_t *conf) @@ -1077,11 +1110,15 @@ struct xlator_fops fops = { .entrylk = iot_entrylk, .fentrylk = iot_fentrylk, .xattrop = iot_xattrop, - .fxattrop = iot_fxattrop, + .fxattrop = iot_fxattrop, .rchecksum = iot_rchecksum, - .fallocate = iot_fallocate, - .discard = iot_discard, + .fallocate = iot_fallocate, + .discard = iot_discard, .zerofill = iot_zerofill, + .seek = iot_seek, + .lease = iot_lease, + .getactivelk = iot_getactivelk, + .setactivelk = iot_setactivelk, }; struct xlator_cbks cbks; |