diff options
Diffstat (limited to 'xlators/cluster/ec/src/ec-inode-read.c')
-rw-r--r-- | xlators/cluster/ec/src/ec-inode-read.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/xlators/cluster/ec/src/ec-inode-read.c b/xlators/cluster/ec/src/ec-inode-read.c index bc3d94c7e61..78a189bc325 100644 --- a/xlators/cluster/ec/src/ec-inode-read.c +++ b/xlators/cluster/ec/src/ec-inode-read.c @@ -254,11 +254,11 @@ int32_t ec_manager_getxattr(ec_fop_data_t * fop, int32_t state) case EC_STATE_LOCK: if (fop->fd == NULL) { - ec_lock_prepare_inode(fop, &fop->loc[0]); + ec_lock_prepare_inode(fop, &fop->loc[0], 0); } else { - ec_lock_prepare_fd(fop, fop->fd); + ec_lock_prepare_fd(fop, fop->fd, 0); } ec_lock(fop); @@ -337,7 +337,7 @@ int32_t ec_manager_getxattr(ec_fop_data_t * fop, int32_t state) case -EC_STATE_LOCK_REUSE: case EC_STATE_LOCK_REUSE: - ec_lock_reuse(fop, 0); + ec_lock_reuse(fop); return EC_STATE_UNLOCK; @@ -516,6 +516,8 @@ void ec_fgetxattr(call_frame_t * frame, xlator_t * this, uintptr_t target, goto out; } + fop->use_fd = 1; + if (fd != NULL) { fop->fd = fd_ref(fd); @@ -1230,7 +1232,7 @@ int32_t ec_manager_readv(ec_fop_data_t * fop, int32_t state) /* Fall through */ case EC_STATE_LOCK: - ec_lock_prepare_fd(fop, fop->fd); + ec_lock_prepare_fd(fop, fop->fd, 0); ec_lock(fop); return EC_STATE_GET_SIZE_AND_VERSION; @@ -1310,7 +1312,7 @@ int32_t ec_manager_readv(ec_fop_data_t * fop, int32_t state) case -EC_STATE_LOCK_REUSE: case EC_STATE_LOCK_REUSE: - ec_lock_reuse(fop, 0); + ec_lock_reuse(fop); return EC_STATE_UNLOCK; @@ -1350,6 +1352,8 @@ void ec_readv(call_frame_t * frame, xlator_t * this, uintptr_t target, goto out; } + fop->use_fd = 1; + fop->size = size; fop->offset = offset; fop->uint32 = flags; @@ -1478,11 +1482,11 @@ int32_t ec_manager_stat(ec_fop_data_t * fop, int32_t state) case EC_STATE_LOCK: if (fop->fd == NULL) { - ec_lock_prepare_inode(fop, &fop->loc[0]); + ec_lock_prepare_inode(fop, &fop->loc[0], 0); } else { - ec_lock_prepare_fd(fop, fop->fd); + ec_lock_prepare_fd(fop, fop->fd, 0); } ec_lock(fop); @@ -1581,7 +1585,7 @@ int32_t ec_manager_stat(ec_fop_data_t * fop, int32_t state) case -EC_STATE_LOCK_REUSE: case EC_STATE_LOCK_REUSE: - ec_lock_reuse(fop, 0); + ec_lock_reuse(fop); return EC_STATE_UNLOCK; @@ -1741,6 +1745,8 @@ void ec_fstat(call_frame_t * frame, xlator_t * this, uintptr_t target, goto out; } + fop->use_fd = 1; + if (fd != NULL) { fop->fd = fd_ref(fd); |