diff options
| -rw-r--r-- | xlators/storage/posix/src/posix-helpers.c | 18 | ||||
| -rw-r--r-- | xlators/storage/posix/src/posix.c | 4 | 
2 files changed, 14 insertions, 8 deletions
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index 3a97da6a79f..d39a77bbe06 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -1695,7 +1695,13 @@ __posix_fd_ctx_get (fd_t *fd, xlator_t *this, struct posix_fd **pfd_p,          if (fd->inode->ia_type == IA_IFDIR) {                  dir = sys_opendir (real_path);                  if (!dir) { -                        op_errno = errno; +                        (errno == ENOENT) ? (op_errno = EBADF) : +                                            (op_errno = errno); +                        gf_msg (this->name, GF_LOG_ERROR, errno, +                                P_MSG_READ_FAILED, +                                "Failed to get anonymous fd for " +                                "real_path: %s. Returning %s.", real_path, +                                strerror(op_errno));                          GF_FREE (pfd);                          pfd = NULL;                          goto out; @@ -1716,11 +1722,13 @@ __posix_fd_ctx_get (fd_t *fd, xlator_t *this, struct posix_fd **pfd_p,                          _fd = open (unlink_path, fd->flags);                  }                  if (_fd == -1) { -                        op_errno = errno; -                        gf_msg (this->name, GF_LOG_ERROR, op_errno, +                        (errno == ENOENT) ? (op_errno = EBADF) : +                                            (op_errno = errno); +                        gf_msg (this->name, GF_LOG_ERROR, errno,                                  P_MSG_READ_FAILED, -                                "Failed to get anonymous " -                                "real_path: %s _fd = %d", real_path, _fd); +                                "Failed to get anonymous fd for " +                                "real_path: %s. Returning %s.", real_path, +                                strerror(op_errno));                          GF_FREE (pfd);                          pfd = NULL;                          goto out; diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index f53207fc5a8..47a477e4470 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -3396,7 +3396,6 @@ posix_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,          if (ret < 0) {                  gf_msg (this->name, GF_LOG_WARNING, ret, P_MSG_PFD_NULL,                          "pfd is NULL from fd=%p", fd); -                op_errno = -ret;                  goto out;          } @@ -5933,7 +5932,6 @@ posix_fstat (call_frame_t *frame, xlator_t *this,          if (ret < 0) {                  gf_msg (this->name, GF_LOG_WARNING, op_errno, P_MSG_PFD_NULL,                          "pfd is NULL, fd=%p", fd); -                op_errno = -ret;                  goto out;          } @@ -6365,7 +6363,7 @@ posix_do_readdir (call_frame_t *frame, xlator_t *this,          ret = posix_fd_ctx_get (fd, this, &pfd, &op_errno);          if (ret < 0) { -                gf_msg (this->name, GF_LOG_WARNING, -ret, P_MSG_PFD_NULL, +                gf_msg (this->name, GF_LOG_WARNING, op_errno, P_MSG_PFD_NULL,                          "pfd is NULL, fd=%p", fd);                  goto out;          }  | 
