summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2018-07-24 17:14:31 +0530
committerAmar Tumballi <amarts@redhat.com>2018-09-05 17:10:42 +0000
commit846ab3c294ff1926e28f367352314789aacc0459 (patch)
tree2fb28b97cabee8b51cfe43502db006818a5981e2
parent8727292061bb91fb50ee59cc247276d0259f0b20 (diff)
posix: remove not supported get/set content
getting and setting a file's content using extended attribute worked great as a GET/PUT alternative when an object storage is supported on top of Gluster. But it needs application changes, and also, it skips some caching layers. It is not used over years, and not supported any more. Remove the dead code. Fixes: bz#1625286 Change-Id: Ide3b3f1f644f6ca58558bbe45561f346f96b95b7 BUG: 1625286 Signed-off-by: Amar Tumballi <amarts@redhat.com>
-rw-r--r--libglusterfs/src/glusterfs.h6
-rw-r--r--xlators/storage/posix/src/posix-helpers.c166
-rw-r--r--xlators/storage/posix/src/posix.c14
-rw-r--r--xlators/storage/posix/src/posix.h4
4 files changed, 1 insertions, 189 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h
index c8835d9..ec4949f 100644
--- a/libglusterfs/src/glusterfs.h
+++ b/libglusterfs/src/glusterfs.h
@@ -158,9 +158,6 @@
#define GLUSTERFS_INTERNAL_FOP_KEY "glusterfs-internal-fop"
#define DHT_CHANGELOG_RENAME_OP_KEY "changelog.rename-op"
-#define ZR_FILE_CONTENT_STR "glusterfs.file."
-#define ZR_FILE_CONTENT_STRLEN 15
-
#define GLUSTERFS_WRITE_IS_APPEND "glusterfs.write-is-append"
#define GLUSTERFS_WRITE_UPDATE_ATOMIC "glusterfs.write-update-atomic"
#define GLUSTERFS_OPEN_FD_COUNT "glusterfs.open-fd-count"
@@ -226,9 +223,6 @@
#define STARTING_EVENT_THREADS 1
-#define ZR_FILE_CONTENT_REQUEST(key) (!strncmp(key, ZR_FILE_CONTENT_STR, \
- ZR_FILE_CONTENT_STRLEN))
-
#define DEFAULT_VAR_RUN_DIRECTORY DATADIR "/run/gluster"
#define DEFAULT_GLUSTERFSD_MISC_DIRETORY DATADIR "/lib/misc/glusterfsd"
#ifdef GF_LINUX_HOST_OS
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
index ef1acad..f9bdf21 100644
--- a/xlators/storage/posix/src/posix-helpers.c
+++ b/xlators/storage/posix/src/posix-helpers.c
@@ -913,166 +913,6 @@ out:
return ret;
}
-
-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;
- }
-
- op_ret = posix_istat (this, 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)
@@ -1185,9 +1025,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;
@@ -1626,8 +1463,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;
}
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
index b60f22c..09027c7 100644
--- a/xlators/storage/posix/src/posix.c
+++ b/xlators/storage/posix/src/posix.c
@@ -4610,7 +4610,6 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,
char *value = NULL;
char *real_path = NULL;
dict_t *dict = NULL;
- char *file_contents = NULL;
int ret = -1;
char *path = NULL;
char *rpath = NULL;
@@ -4650,19 +4649,6 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,
goto out;
}
- if (loc->inode && IA_ISDIR(loc->inode->ia_type) && name &&
- ZR_FILE_CONTENT_REQUEST(name)) {
- ret = posix_get_file_contents (this, loc->gfid, &name[15],
- &file_contents);
- if (ret < 0) {
- op_errno = -ret;
- gf_msg (this->name, GF_LOG_ERROR, op_errno,
- P_MSG_FILE_FAILED, "getting file contents"
- "failed");
- goto out;
- }
- }
-
dict = dict_new ();
if (!dict) {
op_errno = ENOMEM;
diff --git a/xlators/storage/posix/src/posix.h b/xlators/storage/posix/src/posix.h
index afdde2d..d9a4399 100644
--- a/xlators/storage/posix/src/posix.h
+++ b/xlators/storage/posix/src/posix.h
@@ -284,10 +284,6 @@ int posix_handle_pair (xlator_t *this, const char *real_path, char *key,
int posix_fhandle_pair (xlator_t *this, int fd, char *key, data_t *value,
int flags, struct iatt *stbuf);
void posix_spawn_janitor_thread (xlator_t *this);
-int posix_get_file_contents (xlator_t *this, uuid_t pargfid,
- const char *name, char **contents);
-int posix_set_file_contents (xlator_t *this, const char *path, char *key,
- data_t *value, int flags);
int posix_acl_xattr_set (xlator_t *this, const char *path, dict_t *xattr_req);
int posix_gfid_heal (xlator_t *this, const char *path, loc_t *loc, dict_t *xattr_req);
int posix_entry_create_xattr_set (xlator_t *this, const char *path,