diff options
| -rw-r--r-- | xlators/features/locks/src/posix.c | 3 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 1 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.h | 2 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client3_1-fops.c | 11 | 
4 files changed, 6 insertions, 11 deletions
diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c index 2c0f583e6..90caadb0c 100644 --- a/xlators/features/locks/src/posix.c +++ b/xlators/features/locks/src/posix.c @@ -614,10 +614,9 @@ int  pl_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,           fd_t *fd, dict_t *xdata)  { -        /* why isn't O_TRUNC being handled ? */          STACK_WIND (frame, pl_open_cbk,                      FIRST_CHILD(this), FIRST_CHILD(this)->fops->open, -                    loc, flags & ~O_TRUNC, fd, xdata); +                    loc, flags, fd, xdata);          return 0;  } diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index d8ca84021..3703f93b0 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -1188,6 +1188,7 @@ protocol_client_reopen (xlator_t *this, clnt_fd_ctx_t *fdctx)          memcpy (req.gfid, fdctx->gfid, 16);          req.flags    = gf_flags_from_flags (fdctx->flags); +        req.flags    = req.flags & (~(O_TRUNC|O_CREAT|O_EXCL));          gf_log (frame->this->name, GF_LOG_DEBUG,                  "attempting reopen on %s", local->loc.path); diff --git a/xlators/protocol/client/src/client.h b/xlators/protocol/client/src/client.h index ac999db5a..9d8a818aa 100644 --- a/xlators/protocol/client/src/client.h +++ b/xlators/protocol/client/src/client.h @@ -119,7 +119,6 @@ typedef struct _client_fd_ctx {          char              is_dir;          char              released;          int32_t           flags; -        int32_t           wbflags;          fd_lk_ctx_t      *lk_ctx;          pthread_mutex_t   mutex;          lk_heal_state_t   lk_heal_state; @@ -145,7 +144,6 @@ typedef struct client_local {          fd_t                *fd;          clnt_fd_ctx_t       *fdctx;          uint32_t             flags; -        uint32_t             wbflags;          struct iobref       *iobref;          client_posix_lock_t *client_lock; diff --git a/xlators/protocol/client/src/client3_1-fops.c b/xlators/protocol/client/src/client3_1-fops.c index 76668724b..2356d1f8b 100644 --- a/xlators/protocol/client/src/client3_1-fops.c +++ b/xlators/protocol/client/src/client3_1-fops.c @@ -372,7 +372,7 @@ out:  int  client_add_fd_to_saved_fds (xlator_t *this, fd_t *fd, loc_t *loc, int32_t flags, -                            int32_t wbflags, int64_t remote_fd, int is_dir) +                            int64_t remote_fd, int is_dir)  {          int             ret = 0;          uuid_t          gfid = {0}; @@ -397,7 +397,6 @@ client_add_fd_to_saved_fds (xlator_t *this, fd_t *fd, loc_t *loc, int32_t flags,          fdctx->is_dir        = is_dir;          fdctx->remote_fd     = remote_fd;          fdctx->flags         = flags; -        fdctx->wbflags       = wbflags;          fdctx->lk_ctx        = fd_lk_ctx_ref (fd->lk_ctx);          fdctx->lk_heal_state = GF_LK_HEAL_DONE; @@ -452,8 +451,7 @@ client3_1_open_cbk (struct rpc_req *req, struct iovec *iov, int count,          if (-1 != rsp.op_ret) {                  ret = client_add_fd_to_saved_fds (frame->this, fd, &local->loc, -                                                  local->flags, local->wbflags, -                                                  rsp.fd, 0); +                                                  local->flags, rsp.fd, 0);                  if (ret) {                          rsp.op_ret = -1;                          rsp.op_errno = -ret; @@ -2067,8 +2065,7 @@ client3_1_create_cbk (struct rpc_req *req, struct iovec *iov, int count,                  gf_stat_to_iatt (&rsp.postparent, &postparent);                  uuid_copy (local->loc.gfid, stbuf.ia_gfid);                  ret = client_add_fd_to_saved_fds (frame->this, fd, &local->loc, -                                                  local->flags, 0, -                                                  rsp.fd, 0); +                                                  local->flags, rsp.fd, 0);                  if (ret) {                          rsp.op_ret = -1;                          rsp.op_errno = -ret; @@ -2546,7 +2543,7 @@ client3_1_opendir_cbk (struct rpc_req *req, struct iovec *iov, int count,          if (-1 != rsp.op_ret) {                  ret = client_add_fd_to_saved_fds (frame->this, fd, &local->loc, -                                                  0, 0, rsp.fd, 1); +                                                  0, rsp.fd, 1);                  if (ret) {                          rsp.op_ret = -1;                          rsp.op_errno = -ret;  | 
