diff options
Diffstat (limited to 'xlators/storage/posix/src/posix-helpers.c')
| -rw-r--r-- | xlators/storage/posix/src/posix-helpers.c | 169 | 
1 files changed, 1 insertions, 168 deletions
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index bd5b6e6b98b..8c0355e918f 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -1035,169 +1035,6 @@ out:  } -int -posix_set_file_contents (xlator_t *this, const char *path, char *keyp, -                         data_t *value, int flags) -{ -        char *      key                        = NULL; -        char        real_path[PATH_MAX]; -        int32_t     file_fd                    = -1; -        int         op_ret                     = 0; -        int         ret                        = -1; - - -        /* XXX: does not handle assigning GFID to created files */ -        return -1; - -        key = &(keyp[15]); -        sprintf (real_path, "%s/%s", path, key); - -        if (flags & XATTR_REPLACE) { -                /* if file exists, replace it -                 * else, error out */ -                file_fd = open (real_path, O_TRUNC|O_WRONLY); - -                if (file_fd == -1) { -                        goto create; -                } - -                if (value->len) { -                        ret = sys_write (file_fd, value->data, value->len); -                        if (ret == -1) { -                                op_ret = -errno; -                                gf_msg (this->name, GF_LOG_ERROR, errno, -                                        P_MSG_SET_FILE_CONTENTS, "write failed" -                                        "while doing setxattr for key %s on" -                                        "path%s", key, real_path); -                                goto out; -                        } - -                        ret = sys_close (file_fd); -                        if (ret == -1) { -                                op_ret = -errno; -                                gf_msg (this->name, GF_LOG_ERROR, errno, -                                        P_MSG_SET_FILE_CONTENTS, -                                        "close failed on %s", -                                        real_path); -                                goto out; -                        } -                } - -        create: /* we know file doesn't exist, create it */ - -                file_fd = open (real_path, O_CREAT|O_WRONLY, 0644); - -                if (file_fd == -1) { -                        op_ret = -errno; -                        gf_msg (this->name, GF_LOG_ERROR, errno, -                                P_MSG_SET_FILE_CONTENTS, "failed to open file" -                                "%s with O_CREAT", key); -                        goto out; -                } - -                ret = sys_write (file_fd, value->data, value->len); -                if (ret == -1) { -                        op_ret = -errno; -                        gf_msg (this->name, GF_LOG_ERROR, errno, -                                P_MSG_SET_FILE_CONTENTS, "write failed on %s" -                                "while setxattr with key %s", real_path, key); -                        goto out; -                } - -                ret = sys_close (file_fd); -                if (ret == -1) { -                        op_ret = -errno; -                        gf_msg (this->name, GF_LOG_ERROR, errno, -                                P_MSG_SET_FILE_CONTENTS, "close failed on" -                                " %s while setxattr with key %s", -                                real_path, key); -                        goto out; -                } -        } - -out: -        return op_ret; -} - - -int -posix_get_file_contents (xlator_t *this, uuid_t pargfid, -                         const char *name, char **contents) -{ -        char        *real_path                 = NULL; -        int32_t     file_fd                    = -1; -        struct iatt stbuf                      = {0,}; -        int         op_ret                     = 0; -        int         ret                        = -1; - - -        MAKE_HANDLE_PATH (real_path, this, pargfid, name); -        if (!real_path) { -                op_ret = -ESTALE; -                gf_msg (this->name, GF_LOG_ERROR, ESTALE, -                        P_MSG_XDATA_GETXATTR, -                        "Failed to create handle path for %s/%s", -                        uuid_utoa (pargfid), name); -                goto out; -        } - -        /* TODO: Not fetching posix_mdata_t. This is fine without -         * RIO as this routine is only interested in file contents. -         * Need to check how does this function fits into RIO? -         */ -        op_ret = posix_istat (this, NULL, pargfid, name, &stbuf); -        if (op_ret == -1) { -                op_ret = -errno; -                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR, -                        "lstat failed on %s", real_path); -                goto out; -        } - -        file_fd = open (real_path, O_RDONLY); - -        if (file_fd == -1) { -                op_ret = -errno; -                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR, -                        "open failed on %s", real_path); -                goto out; -        } - -        *contents = GF_CALLOC (stbuf.ia_size + 1, sizeof(char), -                               gf_posix_mt_char); -        if (! *contents) { -                op_ret = -errno; -                goto out; -        } - -        ret = sys_read (file_fd, *contents, stbuf.ia_size); -        if (ret <= 0) { -                op_ret = -1; -                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR, -                        "read on %s failed", real_path); -                goto out; -        } - -        *contents[stbuf.ia_size] = '\0'; - -        op_ret = sys_close (file_fd); -        file_fd = -1; -        if (op_ret == -1) { -                op_ret = -errno; -                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR, -                        "close on %s failed", real_path); -                goto out; -        } - -out: -        if (op_ret < 0) { -                GF_FREE (*contents); -                if (file_fd != -1) -                        sys_close (file_fd); -        } - -        return op_ret; -} -  #ifdef HAVE_SYS_ACL_H  int  posix_pacl_set (const char *path, const char *key, const char *acl_s) @@ -1310,9 +1147,6 @@ posix_handle_pair (xlator_t *this, const char *real_path,          } else if (posix_is_gfid2path_xattr (key)) {                  ret = -ENOTSUP;                  goto out; -        } else if (ZR_FILE_CONTENT_REQUEST(key)) { -                ret = posix_set_file_contents (this, real_path, key, value, -                                               flags);          } else if (GF_POSIX_ACL_REQUEST (key)) {                  if (stbuf && IS_DHT_LINKFILE_MODE (stbuf))                          goto out; @@ -1799,8 +1633,7 @@ _handle_entry_create_keyvalue_pair (dict_t *d, char *k, data_t *v,              !strcmp ("gfid-req", k) ||              !strcmp (POSIX_ACL_DEFAULT_XATTR, k) ||              !strcmp (POSIX_ACL_ACCESS_XATTR, k) || -            posix_xattr_ignorable (k) || -            ZR_FILE_CONTENT_REQUEST(k)) { +            posix_xattr_ignorable (k)) {                  return 0;          }  | 
