diff options
author | Anand V. Avati <avati@amp.gluster.com> | 2009-04-11 01:52:08 +0530 |
---|---|---|
committer | Anand V. Avati <avati@amp.gluster.com> | 2009-04-12 11:33:47 +0530 |
commit | f33f0669efd89216a528bab3694ac4645a7f523b (patch) | |
tree | 071210cb6f567a9353af70fbcbef5ce9f2fbf56c /xlators/cluster/afr | |
parent | e0e6acd6fbdcbd294c89e61cbe108fc1b96a62a8 (diff) |
update cluster/afr with new readv writev prototypes
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'xlators/cluster/afr')
-rw-r--r-- | xlators/cluster/afr/src/afr-inode-read.c | 9 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.c | 15 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.h | 3 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-data.c | 8 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 2 |
5 files changed, 20 insertions, 17 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-read.c b/xlators/cluster/afr/src/afr-inode-read.c index c7a7e99879d..2fa8f9e3632 100644 --- a/xlators/cluster/afr/src/afr-inode-read.c +++ b/xlators/cluster/afr/src/afr-inode-read.c @@ -679,7 +679,8 @@ out: int32_t afr_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct iovec *vector, int32_t count, struct stat *buf) + struct iovec *vector, int32_t count, struct stat *buf, + struct iobref *iobref) { afr_private_t * priv = NULL; afr_local_t * local = NULL; @@ -732,7 +733,8 @@ afr_readv_cbk (call_frame_t *frame, void *cookie, out: if (unwind) { - AFR_STACK_UNWIND (frame, op_ret, op_errno, vector, count, buf); + AFR_STACK_UNWIND (frame, op_ret, op_errno, vector, count, buf, + iobref); } return 0; @@ -802,7 +804,8 @@ afr_readv (call_frame_t *frame, xlator_t *this, op_ret = 0; out: if (op_ret == -1) { - AFR_STACK_UNWIND (frame, op_ret, op_errno, NULL, 0, NULL); + AFR_STACK_UNWIND (frame, op_ret, op_errno, NULL, 0, NULL, + NULL); } return 0; } diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c index 8d33d5f62ef..e8d843b3ce8 100644 --- a/xlators/cluster/afr/src/afr-inode-write.c +++ b/xlators/cluster/afr/src/afr-inode-write.c @@ -939,7 +939,8 @@ afr_writev_wind (call_frame_t *frame, xlator_t *this) local->fd, local->cont.writev.vector, local->cont.writev.count, - local->cont.writev.offset); + local->cont.writev.offset, + local->cont.writev.iobref); if (!--call_count) break; @@ -957,9 +958,8 @@ afr_writev_done (call_frame_t *frame, xlator_t *this) local = frame->local; - if (local->cont.writev.refs) - dict_unref (local->cont.writev.refs); - local->cont.writev.refs = NULL; + iobref_unref (local->cont.writev.iobref); + local->cont.writev.iobref = NULL; local->transaction.unwind (frame, this); @@ -971,7 +971,8 @@ afr_writev_done (call_frame_t *frame, xlator_t *this) int afr_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iovec *vector, int32_t count, off_t offset) + struct iovec *vector, int32_t count, off_t offset, + struct iobref *iobref) { afr_private_t * priv = NULL; afr_local_t * local = NULL; @@ -1010,9 +1011,7 @@ afr_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, local->cont.writev.count = count; local->cont.writev.offset = offset; local->cont.writev.ino = fd->inode->ino; - - if (frame->root->req_refs) - local->cont.writev.refs = dict_ref (frame->root->req_refs); + local->cont.writev.iobref = iobref_ref (iobref); local->transaction.fop = afr_writev_wind; local->transaction.done = afr_writev_done; diff --git a/xlators/cluster/afr/src/afr-inode-write.h b/xlators/cluster/afr/src/afr-inode-write.h index 1f1a3a35afd..358d25b5271 100644 --- a/xlators/cluster/afr/src/afr-inode-write.h +++ b/xlators/cluster/afr/src/afr-inode-write.h @@ -38,7 +38,8 @@ afr_fchmod (call_frame_t *frame, xlator_t *this, int32_t afr_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, - struct iovec *vector, int32_t count, off_t offset); + struct iovec *vector, int32_t count, off_t offset, + struct iobref *iobref); int32_t afr_truncate (call_frame_t *frame, xlator_t *this, diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c index 2c1ceafffa1..0f06e45584e 100644 --- a/xlators/cluster/afr/src/afr-self-heal-data.c +++ b/xlators/cluster/afr/src/afr-self-heal-data.c @@ -478,7 +478,8 @@ afr_sh_data_write_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int afr_sh_data_read_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, - struct iovec *vector, int32_t count, struct stat *buf) + struct iovec *vector, int32_t count, struct stat *buf, + struct iobref *iobref) { afr_private_t * priv = NULL; afr_local_t * local = NULL; @@ -511,8 +512,6 @@ afr_sh_data_read_cbk (call_frame_t *frame, void *cookie, offset = sh->offset; sh->offset += op_ret; - frame->root->req_refs = frame->root->rsp_refs; - if (sh->file_has_holes) { if (iov_0filled (vector, count) == 0) { /* the iter function depends on the @@ -533,7 +532,8 @@ afr_sh_data_read_cbk (call_frame_t *frame, void *cookie, (void *) (long) i, priv->children[i], priv->children[i]->fops->writev, - sh->healing_fd, vector, count, offset); + sh->healing_fd, vector, count, offset, + iobref); if (!--call_count) break; diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 10e50c967ca..c15ed85f9c6 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -263,7 +263,7 @@ typedef struct _afr_local { int32_t op_ret; struct iovec *vector; - dict_t *refs; + struct iobref *iobref; int32_t count; off_t offset; } writev; |