diff options
| author | M. Mohan Kumar <mohan@in.ibm.com> | 2013-10-11 17:29:10 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2013-10-17 04:15:24 -0700 | 
| commit | 390221fcc4cc974074750be223e551bd9f4405d9 (patch) | |
| tree | fdb3dc25a9dec3dbe567d5e88116b7dd2e5d987d | |
| parent | 5033d450ca039b77b9245006e1de7c950754dbb1 (diff) | |
posix: Fix readv FOP
Suggested by Anand Avati in BD xlator code review.
Change-Id: I31c353a26dfdeb3d0023c3f7e03ed25461d13c16
Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
BUG: 837495
Reviewed-on: http://review.gluster.org/6077
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
| -rw-r--r-- | xlators/storage/posix/src/posix-aio.c | 6 | ||||
| -rw-r--r-- | xlators/storage/posix/src/posix.c | 6 | 
2 files changed, 2 insertions, 10 deletions
diff --git a/xlators/storage/posix/src/posix-aio.c b/xlators/storage/posix/src/posix-aio.c index 5eed7f1a0..c3bbddd67 100644 --- a/xlators/storage/posix/src/posix-aio.c +++ b/xlators/storage/posix/src/posix-aio.c @@ -136,11 +136,7 @@ posix_aio_readv_complete (struct posix_aio_cb *paiocb, int res, int res2)          /* Hack to notify higher layers of EOF. */ -        if (postbuf.ia_size == 0) -                op_errno = ENOENT; -        else if ((offset + iov.iov_len) == postbuf.ia_size) -                op_errno = ENOENT; -        else if (offset > postbuf.ia_size) +        if (!postbuf.ia_size || (offset + iov.iov_len) >= postbuf.ia_size)                  op_errno = ENOENT;          LOCK (&priv->lock); diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index 163ec928e..61018804c 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -2072,11 +2072,7 @@ posix_readv (call_frame_t *frame, xlator_t *this,          }          /* Hack to notify higher layers of EOF. */ -        if (stbuf.ia_size == 0) -                op_errno = ENOENT; -        else if ((offset + vec.iov_len) == stbuf.ia_size) -                op_errno = ENOENT; -        else if (offset > stbuf.ia_size) +        if (!stbuf.ia_size || (offset + vec.iov_len) >= stbuf.ia_size)                  op_errno = ENOENT;          op_ret = vec.iov_len;  | 
