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 /libglusterfs/src/call-stub.c | |
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 'libglusterfs/src/call-stub.c')
-rw-r--r-- | libglusterfs/src/call-stub.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index 24ca3825b0d..cdae9df251e 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -888,7 +888,7 @@ fop_readv_stub (call_frame_t *frame, fop_readv_t fn, fd_t *fd, size_t size, - off_t off) + off_t off, uint32_t flags) { call_stub_t *stub = NULL; @@ -900,8 +900,10 @@ fop_readv_stub (call_frame_t *frame, stub->args.readv.fn = fn; if (fd) stub->args.readv.fd = fd_ref (fd); - stub->args.readv.size = size; - stub->args.readv.off = off; + stub->args.readv.size = size; + stub->args.readv.off = off; + stub->args.readv.flags = flags; + out: return stub; } @@ -945,7 +947,7 @@ fop_writev_stub (call_frame_t *frame, fd_t *fd, struct iovec *vector, int32_t count, - off_t off, + off_t off, uint32_t flags, struct iobref *iobref) { call_stub_t *stub = NULL; @@ -960,9 +962,11 @@ fop_writev_stub (call_frame_t *frame, if (fd) stub->args.writev.fd = fd_ref (fd); stub->args.writev.vector = iov_dup (vector, count); - stub->args.writev.count = count; - stub->args.writev.off = off; + stub->args.writev.count = count; + stub->args.writev.off = off; + stub->args.writev.flags = flags; stub->args.writev.iobref = iobref_ref (iobref); + out: return stub; } @@ -2258,7 +2262,8 @@ call_resume_wind (call_stub_t *stub) stub->frame->this, stub->args.readv.fd, stub->args.readv.size, - stub->args.readv.off); + stub->args.readv.off, + stub->args.readv.flags); break; } @@ -2270,6 +2275,7 @@ call_resume_wind (call_stub_t *stub) stub->args.writev.vector, stub->args.writev.count, stub->args.writev.off, + stub->args.writev.flags, stub->args.writev.iobref); break; } |