diff options
author | Amar Tumballi <amar@gluster.com> | 2012-02-06 17:49:14 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2012-02-14 01:09:02 -0800 |
commit | 0e6df0100e13123fe38f28c5a090777e894d8f52 (patch) | |
tree | 517c60cc953302172cb51f22f4b7aa52e557c1e9 /xlators/debug | |
parent | e17ac220e4bff53fb89f5bea636acb61e347cf50 (diff) |
core: add an extra flag to readv()/writev() API
needed to implement a proper handling of open flag alterations
using fcntl() on fd.
Change-Id: Ic280d5db6f1dc0418d5c439abb8db1d3ac21ced0
Signed-off-by: Amar Tumballi <amar@gluster.com>
BUG: 782265
Reviewed-on: http://review.gluster.com/2723
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/debug')
-rw-r--r-- | xlators/debug/error-gen/src/error-gen.c | 8 | ||||
-rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 9 | ||||
-rw-r--r-- | xlators/debug/trace/src/trace.c | 19 |
3 files changed, 19 insertions, 17 deletions
diff --git a/xlators/debug/error-gen/src/error-gen.c b/xlators/debug/error-gen/src/error-gen.c index ca2ce488fa9..e44baf5b78d 100644 --- a/xlators/debug/error-gen/src/error-gen.c +++ b/xlators/debug/error-gen/src/error-gen.c @@ -1065,7 +1065,7 @@ error_gen_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int error_gen_readv (call_frame_t *frame, xlator_t *this, - fd_t *fd, size_t size, off_t offset) + fd_t *fd, size_t size, off_t offset, uint32_t flags) { int op_errno = 0; eg_t *egp = NULL; @@ -1088,7 +1088,7 @@ error_gen_readv (call_frame_t *frame, xlator_t *this, STACK_WIND (frame, error_gen_readv_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->readv, - fd, size, offset); + fd, size, offset, flags); return 0; } @@ -1106,7 +1106,7 @@ error_gen_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int error_gen_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, int32_t count, - off_t off, struct iobref *iobref) + off_t off, uint32_t flags, struct iobref *iobref) { int op_errno = 0; eg_t *egp = NULL; @@ -1127,7 +1127,7 @@ error_gen_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, STACK_WIND (frame, error_gen_writev_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->writev, - fd, vector, count, off, iobref); + fd, vector, count, off, flags, iobref); return 0; } diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index e47b062eebf..888c36dfbf2 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -2055,7 +2055,7 @@ io_stats_create (call_frame_t *frame, xlator_t *this, int io_stats_readv (call_frame_t *frame, xlator_t *this, - fd_t *fd, size_t size, off_t offset) + fd_t *fd, size_t size, off_t offset, uint32_t flags) { frame->local = fd; @@ -2064,7 +2064,7 @@ io_stats_readv (call_frame_t *frame, xlator_t *this, STACK_WIND (frame, io_stats_readv_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->readv, - fd, size, offset); + fd, size, offset, flags); return 0; } @@ -2073,7 +2073,7 @@ int io_stats_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, int32_t count, off_t offset, - struct iobref *iobref) + uint32_t flags, struct iobref *iobref) { int len = 0; @@ -2081,14 +2081,13 @@ io_stats_writev (call_frame_t *frame, xlator_t *this, frame->local = fd->inode; len = iov_length (vector, count); - BUMP_WRITE (fd, len); START_FOP_LATENCY (frame); STACK_WIND (frame, io_stats_writev_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->writev, - fd, vector, count, offset, iobref); + fd, vector, count, offset, flags, iobref); return 0; } diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c index 91d069fd1eb..09c58bdfdc3 100644 --- a/xlators/debug/trace/src/trace.c +++ b/xlators/debug/trace/src/trace.c @@ -1813,19 +1813,21 @@ trace_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int trace_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, - size_t size, off_t offset) + size_t size, off_t offset, uint32_t flags) { if (trace_fop_names[GF_FOP_READ].enabled) { gf_log (this->name, GF_LOG_INFO, - "%"PRId64": gfid=%s fd=%p, size=%"GF_PRI_SIZET", offset=%"PRId64")", - frame->root->unique, uuid_utoa (fd->inode->gfid), fd, size, offset); + "%"PRId64": gfid=%s fd=%p, size=%"GF_PRI_SIZET", " + "offset=%"PRId64" flags=0%x)", + frame->root->unique, uuid_utoa (fd->inode->gfid), + fd, size, offset, flags); frame->local = fd->inode->gfid; } STACK_WIND (frame, trace_readv_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->readv, - fd, size, offset); + fd, size, offset, flags); return 0; } @@ -1833,20 +1835,21 @@ trace_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, int trace_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, int32_t count, - off_t offset, struct iobref *iobref) + off_t offset, uint32_t flags, struct iobref *iobref) { if (trace_fop_names[GF_FOP_WRITE].enabled) { gf_log (this->name, GF_LOG_INFO, - "%"PRId64": gfid=%s fd=%p, count=%d, offset=%"PRId64")", + "%"PRId64": gfid=%s fd=%p, count=%d, offset=%"PRId64 + " flag=0%x)", frame->root->unique, uuid_utoa (fd->inode->gfid), - fd, count, offset); + fd, count, offset, flags); frame->local = fd->inode->gfid; } STACK_WIND (frame, trace_writev_cbk, FIRST_CHILD(this), FIRST_CHILD(this)->fops->writev, - fd, vector, count, offset, iobref); + fd, vector, count, offset, flags, iobref); return 0; } |