diff options
Diffstat (limited to 'xlators/storage')
| -rw-r--r-- | xlators/storage/posix/src/posix-helpers.c | 16 | 
1 files changed, 7 insertions, 9 deletions
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index ba42272065b..aaa9ac1ee29 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -1633,18 +1633,12 @@ __posix_fd_ctx_get (fd_t *fd, xlator_t *this, struct posix_fd **pfd_p)                  goto out;          }          if (!fd_is_anonymous(fd)) { -                gf_msg (this->name, GF_LOG_ERROR, 0, -                        P_MSG_READ_FAILED, +                gf_msg (this->name, GF_LOG_ERROR, 0, P_MSG_READ_FAILED,                          "Failed to get fd context for a non-anonymous fd, " -                        "file: %s, gfid: %s", real_path, -                        uuid_utoa (fd->inode->gfid)); +                        "gfid: %s", uuid_utoa (fd->inode->gfid));                  goto out;          } -        if (!fd_is_anonymous(fd)) -                /* anonymous fd */ -                goto out; -          MAKE_HANDLE_PATH (real_path, this, fd->inode->gfid, NULL);          if (!real_path) {                  gf_msg (this->name, GF_LOG_ERROR, 0, @@ -1671,8 +1665,12 @@ __posix_fd_ctx_get (fd_t *fd, xlator_t *this, struct posix_fd **pfd_p)                  _fd = dirfd (dir);          } +        /* Using fd->flags in case we choose to have anonymous +         * fds with different flags some day. As of today it +         * would be GF_ANON_FD_FLAGS and nothing else. +         */          if (fd->inode->ia_type == IA_IFREG) { -                _fd = open (real_path, O_RDWR|O_LARGEFILE); +                _fd = open (real_path, fd->flags);                  if (_fd == -1) {                          POSIX_GET_FILE_UNLINK_PATH (priv->base_path,                                                      fd->inode->gfid,  | 
