summaryrefslogtreecommitdiffstats
path: root/xlators/debug
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2012-02-06 17:49:14 +0530
committerAnand Avati <avati@redhat.com>2012-02-14 01:09:02 -0800
commit0e6df0100e13123fe38f28c5a090777e894d8f52 (patch)
tree517c60cc953302172cb51f22f4b7aa52e557c1e9 /xlators/debug
parente17ac220e4bff53fb89f5bea636acb61e347cf50 (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.c8
-rw-r--r--xlators/debug/io-stats/src/io-stats.c9
-rw-r--r--xlators/debug/trace/src/trace.c19
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 ca2ce488f..e44baf5b7 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 e47b062ee..888c36dfb 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 91d069fd1..09c58bdfd 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;
}