d1681e
From 54c7d29635ee284c0390260d4bececf917397bc7 Mon Sep 17 00:00:00 2001
d1681e
From: Amar Tumballi <amarts@redhat.com>
d1681e
Date: Thu, 2 Aug 2018 14:25:38 +0530
d1681e
Subject: [PATCH 339/351] posix: remove not supported get/set content
d1681e
d1681e
getting and setting a file's content using extended
d1681e
attribute worked great as a GET/PUT alternative when
d1681e
an object storage is supported on top of Gluster. But
d1681e
it needs application changes, and also, it skips some
d1681e
caching layers. It is not used over years, and not
d1681e
supported any more. Remove the dead code.
d1681e
d1681e
BUG: 1608363
d1681e
BUG: 1608366
d1681e
Change-Id: I6d4c135ca1bce5197c7cf749f9f3b481b91f2a95
d1681e
Signed-off-by: Amar Tumballi <amarts@redhat.com>
d1681e
Reviewed-on: https://code.engineering.redhat.com/gerrit/145896
d1681e
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
d1681e
Reviewed-by: FNU Raghavendra Manjunath <raghavendra@redhat.com>
d1681e
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
d1681e
---
d1681e
 libglusterfs/src/glusterfs.h              |   6 --
d1681e
 xlators/storage/posix/src/posix-helpers.c | 165 +-----------------------------
d1681e
 xlators/storage/posix/src/posix.c         |  13 ---
d1681e
 xlators/storage/posix/src/posix.h         |   4 -
d1681e
 4 files changed, 1 insertion(+), 187 deletions(-)
d1681e
d1681e
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h
d1681e
index b161bf0..d71a9c1 100644
d1681e
--- a/libglusterfs/src/glusterfs.h
d1681e
+++ b/libglusterfs/src/glusterfs.h
d1681e
@@ -185,9 +185,6 @@ enum gf_internal_fop_indicator {
d1681e
 
d1681e
 #define DHT_CHANGELOG_RENAME_OP_KEY   "changelog.rename-op"
d1681e
 
d1681e
-#define ZR_FILE_CONTENT_STR     "glusterfs.file."
d1681e
-#define ZR_FILE_CONTENT_STRLEN 15
d1681e
-
d1681e
 #define GLUSTERFS_WRITE_IS_APPEND "glusterfs.write-is-append"
d1681e
 #define GLUSTERFS_WRITE_UPDATE_ATOMIC "glusterfs.write-update-atomic"
d1681e
 #define GLUSTERFS_OPEN_FD_COUNT "glusterfs.open-fd-count"
d1681e
@@ -254,9 +251,6 @@ enum gf_internal_fop_indicator {
d1681e
 
d1681e
 #define STARTING_EVENT_THREADS                 1
d1681e
 
d1681e
-#define ZR_FILE_CONTENT_REQUEST(key) (!strncmp(key, ZR_FILE_CONTENT_STR, \
d1681e
-                                               ZR_FILE_CONTENT_STRLEN))
d1681e
-
d1681e
 #define DEFAULT_VAR_RUN_DIRECTORY        DATADIR "/run/gluster"
d1681e
 #define DEFAULT_GLUSTERFSD_MISC_DIRETORY DATADIR "/lib/misc/glusterfsd"
d1681e
 #ifdef GF_LINUX_HOST_OS
d1681e
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
d1681e
index 49f9f46..cddf02e 100644
d1681e
--- a/xlators/storage/posix/src/posix-helpers.c
d1681e
+++ b/xlators/storage/posix/src/posix-helpers.c
d1681e
@@ -919,165 +919,6 @@ out:
d1681e
 }
d1681e
 
d1681e
 
d1681e
-int
d1681e
-posix_set_file_contents (xlator_t *this, const char *path, char *keyp,
d1681e
-                         data_t *value, int flags)
d1681e
-{
d1681e
-        char *      key                        = NULL;
d1681e
-        char        real_path[PATH_MAX];
d1681e
-        int32_t     file_fd                    = -1;
d1681e
-        int         op_ret                     = 0;
d1681e
-        int         ret                        = -1;
d1681e
-
d1681e
-
d1681e
-        /* XXX: does not handle assigning GFID to created files */
d1681e
-        return -1;
d1681e
-
d1681e
-        key = &(keyp[15]);
d1681e
-        sprintf (real_path, "%s/%s", path, key);
d1681e
-
d1681e
-        if (flags & XATTR_REPLACE) {
d1681e
-                /* if file exists, replace it
d1681e
-                 * else, error out */
d1681e
-                file_fd = open (real_path, O_TRUNC|O_WRONLY);
d1681e
-
d1681e
-                if (file_fd == -1) {
d1681e
-                        goto create;
d1681e
-                }
d1681e
-
d1681e
-                if (value->len) {
d1681e
-                        ret = sys_write (file_fd, value->data, value->len);
d1681e
-                        if (ret == -1) {
d1681e
-                                op_ret = -errno;
d1681e
-                                gf_msg (this->name, GF_LOG_ERROR, errno,
d1681e
-                                        P_MSG_SET_FILE_CONTENTS, "write failed"
d1681e
-                                        "while doing setxattr for key %s on"
d1681e
-                                        "path%s", key, real_path);
d1681e
-                                goto out;
d1681e
-                        }
d1681e
-
d1681e
-                        ret = sys_close (file_fd);
d1681e
-                        if (ret == -1) {
d1681e
-                                op_ret = -errno;
d1681e
-                                gf_msg (this->name, GF_LOG_ERROR, errno,
d1681e
-                                        P_MSG_SET_FILE_CONTENTS,
d1681e
-                                        "close failed on %s",
d1681e
-                                        real_path);
d1681e
-                                goto out;
d1681e
-                        }
d1681e
-                }
d1681e
-
d1681e
-        create: /* we know file doesn't exist, create it */
d1681e
-
d1681e
-                file_fd = open (real_path, O_CREAT|O_WRONLY, 0644);
d1681e
-
d1681e
-                if (file_fd == -1) {
d1681e
-                        op_ret = -errno;
d1681e
-                        gf_msg (this->name, GF_LOG_ERROR, errno,
d1681e
-                                P_MSG_SET_FILE_CONTENTS, "failed to open file"
d1681e
-                                "%s with O_CREAT", key);
d1681e
-                        goto out;
d1681e
-                }
d1681e
-
d1681e
-                ret = sys_write (file_fd, value->data, value->len);
d1681e
-                if (ret == -1) {
d1681e
-                        op_ret = -errno;
d1681e
-                        gf_msg (this->name, GF_LOG_ERROR, errno,
d1681e
-                                P_MSG_SET_FILE_CONTENTS, "write failed on %s"
d1681e
-                                "while setxattr with key %s", real_path, key);
d1681e
-                        goto out;
d1681e
-                }
d1681e
-
d1681e
-                ret = sys_close (file_fd);
d1681e
-                if (ret == -1) {
d1681e
-                        op_ret = -errno;
d1681e
-                        gf_msg (this->name, GF_LOG_ERROR, errno,
d1681e
-                                P_MSG_SET_FILE_CONTENTS, "close failed on"
d1681e
-                                " %s while setxattr with key %s",
d1681e
-                                real_path, key);
d1681e
-                        goto out;
d1681e
-                }
d1681e
-        }
d1681e
-
d1681e
-out:
d1681e
-        return op_ret;
d1681e
-}
d1681e
-
d1681e
-
d1681e
-int
d1681e
-posix_get_file_contents (xlator_t *this, uuid_t pargfid,
d1681e
-                         const char *name, char **contents)
d1681e
-{
d1681e
-        char        *real_path                 = NULL;
d1681e
-        int32_t     file_fd                    = -1;
d1681e
-        struct iatt stbuf                      = {0,};
d1681e
-        int         op_ret                     = 0;
d1681e
-        int         ret                        = -1;
d1681e
-
d1681e
-
d1681e
-        MAKE_HANDLE_PATH (real_path, this, pargfid, name);
d1681e
-        if (!real_path) {
d1681e
-                op_ret = -ESTALE;
d1681e
-                gf_msg (this->name, GF_LOG_ERROR, ESTALE,
d1681e
-                        P_MSG_XDATA_GETXATTR,
d1681e
-                        "Failed to create handle path for %s/%s",
d1681e
-                        uuid_utoa (pargfid), name);
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-        op_ret = posix_istat (this, pargfid, name, &stbuf);
d1681e
-        if (op_ret == -1) {
d1681e
-                op_ret = -errno;
d1681e
-                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
d1681e
-                        "lstat failed on %s", real_path);
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-        file_fd = open (real_path, O_RDONLY);
d1681e
-
d1681e
-        if (file_fd == -1) {
d1681e
-                op_ret = -errno;
d1681e
-                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
d1681e
-                        "open failed on %s", real_path);
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-        *contents = GF_CALLOC (stbuf.ia_size + 1, sizeof(char),
d1681e
-                               gf_posix_mt_char);
d1681e
-        if (! *contents) {
d1681e
-                op_ret = -errno;
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-        ret = sys_read (file_fd, *contents, stbuf.ia_size);
d1681e
-        if (ret <= 0) {
d1681e
-                op_ret = -1;
d1681e
-                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
d1681e
-                        "read on %s failed", real_path);
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-        *contents[stbuf.ia_size] = '\0';
d1681e
-
d1681e
-        op_ret = sys_close (file_fd);
d1681e
-        file_fd = -1;
d1681e
-        if (op_ret == -1) {
d1681e
-                op_ret = -errno;
d1681e
-                gf_msg (this->name, GF_LOG_ERROR, errno, P_MSG_XDATA_GETXATTR,
d1681e
-                        "close on %s failed", real_path);
d1681e
-                goto out;
d1681e
-        }
d1681e
-
d1681e
-out:
d1681e
-        if (op_ret < 0) {
d1681e
-                GF_FREE (*contents);
d1681e
-                if (file_fd != -1)
d1681e
-                        sys_close (file_fd);
d1681e
-        }
d1681e
-
d1681e
-        return op_ret;
d1681e
-}
d1681e
-
d1681e
 #ifdef HAVE_SYS_ACL_H
d1681e
 int
d1681e
 posix_pacl_set (const char *path, const char *key, const char *acl_s)
d1681e
@@ -1190,9 +1031,6 @@ posix_handle_pair (xlator_t *this, const char *real_path,
d1681e
         } else if (posix_is_gfid2path_xattr (key)) {
d1681e
                 ret = -ENOTSUP;
d1681e
                 goto out;
d1681e
-        } else if (ZR_FILE_CONTENT_REQUEST(key)) {
d1681e
-                ret = posix_set_file_contents (this, real_path, key, value,
d1681e
-                                               flags);
d1681e
         } else if (GF_POSIX_ACL_REQUEST (key)) {
d1681e
                 if (stbuf && IS_DHT_LINKFILE_MODE (stbuf))
d1681e
                         goto out;
d1681e
@@ -1635,8 +1473,7 @@ _handle_entry_create_keyvalue_pair (dict_t *d, char *k, data_t *v,
d1681e
             !strcmp ("gfid-req", k) ||
d1681e
             !strcmp (POSIX_ACL_DEFAULT_XATTR, k) ||
d1681e
             !strcmp (POSIX_ACL_ACCESS_XATTR, k) ||
d1681e
-            posix_xattr_ignorable (k) ||
d1681e
-            ZR_FILE_CONTENT_REQUEST(k)) {
d1681e
+            posix_xattr_ignorable (k)) {
d1681e
                 return 0;
d1681e
         }
d1681e
 
d1681e
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
d1681e
index 5203068..5c6e103 100644
d1681e
--- a/xlators/storage/posix/src/posix.c
d1681e
+++ b/xlators/storage/posix/src/posix.c
d1681e
@@ -4720,19 +4720,6 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,
d1681e
                 goto out;
d1681e
         }
d1681e
 
d1681e
-        if (loc->inode && IA_ISDIR(loc->inode->ia_type) && name &&
d1681e
-            ZR_FILE_CONTENT_REQUEST(name)) {
d1681e
-                ret = posix_get_file_contents (this, loc->gfid, &name[15],
d1681e
-                                               &file_contents);
d1681e
-                if (ret < 0) {
d1681e
-                        op_errno = -ret;
d1681e
-                        gf_msg (this->name, GF_LOG_ERROR, op_errno,
d1681e
-                                P_MSG_FILE_FAILED, "getting file contents"
d1681e
-                                "failed");
d1681e
-                        goto out;
d1681e
-                }
d1681e
-        }
d1681e
-
d1681e
         dict = dict_new ();
d1681e
         if (!dict) {
d1681e
                 op_errno = ENOMEM;
d1681e
diff --git a/xlators/storage/posix/src/posix.h b/xlators/storage/posix/src/posix.h
d1681e
index 8e40e6f..eaf4d0d 100644
d1681e
--- a/xlators/storage/posix/src/posix.h
d1681e
+++ b/xlators/storage/posix/src/posix.h
d1681e
@@ -304,10 +304,6 @@ int posix_handle_pair (xlator_t *this, const char *real_path, char *key,
d1681e
 int posix_fhandle_pair (xlator_t *this, int fd, char *key, data_t *value,
d1681e
                         int flags, struct iatt *stbuf);
d1681e
 void posix_spawn_janitor_thread (xlator_t *this);
d1681e
-int posix_get_file_contents (xlator_t *this, uuid_t pargfid,
d1681e
-                             const char *name, char **contents);
d1681e
-int posix_set_file_contents (xlator_t *this, const char *path, char *key,
d1681e
-                             data_t *value, int flags);
d1681e
 int posix_acl_xattr_set (xlator_t *this, const char *path, dict_t *xattr_req);
d1681e
 int posix_gfid_heal (xlator_t *this, const char *path, loc_t *loc, dict_t *xattr_req);
d1681e
 int posix_entry_create_xattr_set (xlator_t *this, const char *path,
d1681e
-- 
d1681e
1.8.3.1
d1681e