linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Minor orangefs xattr cleanups
@ 2016-05-30  9:25 Andreas Gruenbacher
  2016-05-30  9:25 ` [PATCH v2 1/3] orangefs: Remove useless defines Andreas Gruenbacher
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Andreas Gruenbacher @ 2016-05-30  9:25 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Andreas Gruenbacher, linux-fsdevel

Rebased onto current mainline.

Andreas

Andreas Gruenbacher (3):
  orangefs: Remove useless defines
  orangefs: Remove redundant "trusted." xattr handler
  orangefs: Remove useless xattr prefix arguments

 fs/orangefs/acl.c             |  17 +++---
 fs/orangefs/file.c            |   2 -
 fs/orangefs/orangefs-kernel.h |  13 -----
 fs/orangefs/xattr.c           | 125 +++++++++---------------------------------
 4 files changed, 34 insertions(+), 123 deletions(-)

-- 
2.5.5


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/3] orangefs: Remove useless defines
  2016-05-30  9:25 [PATCH v2 0/3] Minor orangefs xattr cleanups Andreas Gruenbacher
@ 2016-05-30  9:25 ` Andreas Gruenbacher
  2016-05-30  9:26 ` [PATCH v2 2/3] orangefs: Remove redundant "trusted." xattr handler Andreas Gruenbacher
  2016-05-30  9:26 ` [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments Andreas Gruenbacher
  2 siblings, 0 replies; 6+ messages in thread
From: Andreas Gruenbacher @ 2016-05-30  9:25 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Andreas Gruenbacher, linux-fsdevel

The ORANGEFS_XATTR_INDEX_ defines are unused; the ORANGEFS_XATTR_NAME_
defines only obfuscate the code.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
 fs/orangefs/acl.c             |  8 ++++----
 fs/orangefs/file.c            |  4 ++--
 fs/orangefs/orangefs-kernel.h | 11 -----------
 fs/orangefs/xattr.c           | 17 ++++++-----------
 4 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/fs/orangefs/acl.c b/fs/orangefs/acl.c
index 03f89db..df24864 100644
--- a/fs/orangefs/acl.c
+++ b/fs/orangefs/acl.c
@@ -18,10 +18,10 @@ struct posix_acl *orangefs_get_acl(struct inode *inode, int type)
 
 	switch (type) {
 	case ACL_TYPE_ACCESS:
-		key = ORANGEFS_XATTR_NAME_ACL_ACCESS;
+		key = XATTR_NAME_POSIX_ACL_ACCESS;
 		break;
 	case ACL_TYPE_DEFAULT:
-		key = ORANGEFS_XATTR_NAME_ACL_DEFAULT;
+		key = XATTR_NAME_POSIX_ACL_DEFAULT;
 		break;
 	default:
 		gossip_err("orangefs_get_acl: bogus value of type %d\n", type);
@@ -74,7 +74,7 @@ int orangefs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
 
 	switch (type) {
 	case ACL_TYPE_ACCESS:
-		name = ORANGEFS_XATTR_NAME_ACL_ACCESS;
+		name = XATTR_NAME_POSIX_ACL_ACCESS;
 		if (acl) {
 			umode_t mode = inode->i_mode;
 			/*
@@ -98,7 +98,7 @@ int orangefs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
 		}
 		break;
 	case ACL_TYPE_DEFAULT:
-		name = ORANGEFS_XATTR_NAME_ACL_DEFAULT;
+		name = XATTR_NAME_POSIX_ACL_DEFAULT;
 		break;
 	default:
 		gossip_err("%s: invalid type %d!\n", __func__, type);
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 491e82c..5160a3f 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -516,7 +516,7 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 	if (cmd == FS_IOC_GETFLAGS) {
 		val = 0;
 		ret = orangefs_inode_getxattr(file_inode(file),
-					      ORANGEFS_XATTR_NAME_DEFAULT_PREFIX,
+					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val));
 		if (ret < 0 && ret != -ENODATA)
@@ -549,7 +549,7 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 			     "orangefs_ioctl: FS_IOC_SETFLAGS: %llu\n",
 			     (unsigned long long)val);
 		ret = orangefs_inode_setxattr(file_inode(file),
-					      ORANGEFS_XATTR_NAME_DEFAULT_PREFIX,
+					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val), 0);
 	}
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index 2281882..6503e37 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
@@ -119,17 +119,6 @@ struct client_debug_mask {
 #define ORANGEFS_CACHE_CREATE_FLAGS 0
 #endif /* ((defined ORANGEFS_KERNEL_DEBUG) && (defined CONFIG_DEBUG_SLAB)) */
 
-/* orangefs xattr and acl related defines */
-#define ORANGEFS_XATTR_INDEX_POSIX_ACL_ACCESS  1
-#define ORANGEFS_XATTR_INDEX_POSIX_ACL_DEFAULT 2
-#define ORANGEFS_XATTR_INDEX_TRUSTED           3
-#define ORANGEFS_XATTR_INDEX_DEFAULT           4
-
-#define ORANGEFS_XATTR_NAME_ACL_ACCESS XATTR_NAME_POSIX_ACL_ACCESS
-#define ORANGEFS_XATTR_NAME_ACL_DEFAULT XATTR_NAME_POSIX_ACL_DEFAULT
-#define ORANGEFS_XATTR_NAME_TRUSTED_PREFIX "trusted."
-#define ORANGEFS_XATTR_NAME_DEFAULT_PREFIX ""
-
 /* these functions are defined in orangefs-utils.c */
 int orangefs_prepare_cdm_array(char *debug_array_string);
 int orangefs_prepare_debugfs_help_string(int);
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index 5893ddd..f387e8a 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -456,7 +456,7 @@ static int orangefs_xattr_set_default(const struct xattr_handler *handler,
 				      int flags)
 {
 	return orangefs_inode_setxattr(inode,
-				    ORANGEFS_XATTR_NAME_DEFAULT_PREFIX,
+				    "",
 				    name,
 				    buffer,
 				    size,
@@ -471,7 +471,7 @@ static int orangefs_xattr_get_default(const struct xattr_handler *handler,
 				      size_t size)
 {
 	return orangefs_inode_getxattr(inode,
-				    ORANGEFS_XATTR_NAME_DEFAULT_PREFIX,
+				    "",
 				    name,
 				    buffer,
 				    size);
@@ -487,7 +487,7 @@ static int orangefs_xattr_set_trusted(const struct xattr_handler *handler,
 				     int flags)
 {
 	return orangefs_inode_setxattr(inode,
-				    ORANGEFS_XATTR_NAME_TRUSTED_PREFIX,
+				    XATTR_TRUSTED_PREFIX,
 				    name,
 				    buffer,
 				    size,
@@ -502,25 +502,20 @@ static int orangefs_xattr_get_trusted(const struct xattr_handler *handler,
 				      size_t size)
 {
 	return orangefs_inode_getxattr(inode,
-				    ORANGEFS_XATTR_NAME_TRUSTED_PREFIX,
+				    XATTR_TRUSTED_PREFIX,
 				    name,
 				    buffer,
 				    size);
 }
 
 static struct xattr_handler orangefs_xattr_trusted_handler = {
-	.prefix = ORANGEFS_XATTR_NAME_TRUSTED_PREFIX,
+	.prefix = XATTR_TRUSTED_PREFIX,
 	.get = orangefs_xattr_get_trusted,
 	.set = orangefs_xattr_set_trusted,
 };
 
 static struct xattr_handler orangefs_xattr_default_handler = {
-	/*
-	 * NOTE: this is set to be the empty string.
-	 * so that all un-prefixed xattrs keys get caught
-	 * here!
-	 */
-	.prefix = ORANGEFS_XATTR_NAME_DEFAULT_PREFIX,
+	.prefix = "",  /* match any name => handlers called with full name */
 	.get = orangefs_xattr_get_default,
 	.set = orangefs_xattr_set_default,
 };
-- 
2.5.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/3] orangefs: Remove redundant "trusted." xattr handler
  2016-05-30  9:25 [PATCH v2 0/3] Minor orangefs xattr cleanups Andreas Gruenbacher
  2016-05-30  9:25 ` [PATCH v2 1/3] orangefs: Remove useless defines Andreas Gruenbacher
@ 2016-05-30  9:26 ` Andreas Gruenbacher
  2016-05-30  9:26 ` [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments Andreas Gruenbacher
  2 siblings, 0 replies; 6+ messages in thread
From: Andreas Gruenbacher @ 2016-05-30  9:26 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Andreas Gruenbacher, linux-fsdevel

Orangefs has a catch-all xattr handler that effectively does what the
trusted handler does already.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
 fs/orangefs/xattr.c | 37 -------------------------------------
 1 file changed, 37 deletions(-)

diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index f387e8a..640a98f 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -478,42 +478,6 @@ static int orangefs_xattr_get_default(const struct xattr_handler *handler,
 
 }
 
-static int orangefs_xattr_set_trusted(const struct xattr_handler *handler,
-				     struct dentry *unused,
-				     struct inode *inode,
-				     const char *name,
-				     const void *buffer,
-				     size_t size,
-				     int flags)
-{
-	return orangefs_inode_setxattr(inode,
-				    XATTR_TRUSTED_PREFIX,
-				    name,
-				    buffer,
-				    size,
-				    flags);
-}
-
-static int orangefs_xattr_get_trusted(const struct xattr_handler *handler,
-				      struct dentry *unused,
-				      struct inode *inode,
-				      const char *name,
-				      void *buffer,
-				      size_t size)
-{
-	return orangefs_inode_getxattr(inode,
-				    XATTR_TRUSTED_PREFIX,
-				    name,
-				    buffer,
-				    size);
-}
-
-static struct xattr_handler orangefs_xattr_trusted_handler = {
-	.prefix = XATTR_TRUSTED_PREFIX,
-	.get = orangefs_xattr_get_trusted,
-	.set = orangefs_xattr_set_trusted,
-};
-
 static struct xattr_handler orangefs_xattr_default_handler = {
 	.prefix = "",  /* match any name => handlers called with full name */
 	.get = orangefs_xattr_get_default,
@@ -523,7 +487,6 @@ static struct xattr_handler orangefs_xattr_default_handler = {
 const struct xattr_handler *orangefs_xattr_handlers[] = {
 	&posix_acl_access_xattr_handler,
 	&posix_acl_default_xattr_handler,
-	&orangefs_xattr_trusted_handler,
 	&orangefs_xattr_default_handler,
 	NULL
 };
-- 
2.5.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments
  2016-05-30  9:25 [PATCH v2 0/3] Minor orangefs xattr cleanups Andreas Gruenbacher
  2016-05-30  9:25 ` [PATCH v2 1/3] orangefs: Remove useless defines Andreas Gruenbacher
  2016-05-30  9:26 ` [PATCH v2 2/3] orangefs: Remove redundant "trusted." xattr handler Andreas Gruenbacher
@ 2016-05-30  9:26 ` Andreas Gruenbacher
  2016-06-03 19:44   ` Mike Marshall
  2 siblings, 1 reply; 6+ messages in thread
From: Andreas Gruenbacher @ 2016-05-30  9:26 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Andreas Gruenbacher, linux-fsdevel

Passing the attribute prefix and name to orangefs_inode_*xattr as
separate arguments was unnecessary before, but now that the trusted
xattr handler is gone, the prefix is even always the empty string.
Remove it.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
 fs/orangefs/acl.c             |  9 ++---
 fs/orangefs/file.c            |  2 --
 fs/orangefs/orangefs-kernel.h |  2 --
 fs/orangefs/xattr.c           | 81 ++++++++++++++-----------------------------
 4 files changed, 29 insertions(+), 65 deletions(-)

diff --git a/fs/orangefs/acl.c b/fs/orangefs/acl.c
index df24864..28f2195 100644
--- a/fs/orangefs/acl.c
+++ b/fs/orangefs/acl.c
@@ -43,11 +43,8 @@ struct posix_acl *orangefs_get_acl(struct inode *inode, int type)
 		     get_khandle_from_ino(inode),
 		     key,
 		     type);
-	ret = orangefs_inode_getxattr(inode,
-				   "",
-				   key,
-				   value,
-				   ORANGEFS_MAX_XATTR_VALUELEN);
+	ret = orangefs_inode_getxattr(inode, key, value,
+				      ORANGEFS_MAX_XATTR_VALUELEN);
 	/* if the key exists, convert it to an in-memory rep */
 	if (ret > 0) {
 		acl = posix_acl_from_xattr(&init_user_ns, value, ret);
@@ -131,7 +128,7 @@ int orangefs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
 	 * will xlate to a removexattr. However, we don't want removexattr
 	 * complain if attributes does not exist.
 	 */
-	error = orangefs_inode_setxattr(inode, "", name, value, size, 0);
+	error = orangefs_inode_setxattr(inode, name, value, size, 0);
 
 out:
 	kfree(value);
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 5160a3f..526040e 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -516,7 +516,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 	if (cmd == FS_IOC_GETFLAGS) {
 		val = 0;
 		ret = orangefs_inode_getxattr(file_inode(file),
-					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val));
 		if (ret < 0 && ret != -ENODATA)
@@ -549,7 +548,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 			     "orangefs_ioctl: FS_IOC_SETFLAGS: %llu\n",
 			     (unsigned long long)val);
 		ret = orangefs_inode_setxattr(file_inode(file),
-					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val), 0);
 	}
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index 6503e37..7b542f1 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
@@ -517,13 +517,11 @@ __s32 fsid_of_op(struct orangefs_kernel_op_s *op);
 int orangefs_flush_inode(struct inode *inode);
 
 ssize_t orangefs_inode_getxattr(struct inode *inode,
-			     const char *prefix,
 			     const char *name,
 			     void *buffer,
 			     size_t size);
 
 int orangefs_inode_setxattr(struct inode *inode,
-			 const char *prefix,
 			 const char *name,
 			 const void *value,
 			 size_t size,
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index 640a98f..1165047 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -59,8 +59,8 @@ static inline int convert_to_internal_xattr_flags(int setxattr_flags)
  * unless the key does not exist for the file and/or if
  * there were errors in fetching the attribute value.
  */
-ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
-		const char *name, void *buffer, size_t size)
+ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
+				void *buffer, size_t size)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op = NULL;
@@ -70,12 +70,12 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
 	int fsgid;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
-		     "%s: prefix %s name %s, buffer_size %zd\n",
-		     __func__, prefix, name, size);
+		     "%s: name %s, buffer_size %zd\n",
+		     __func__, name, size);
 
-	if ((strlen(name) + strlen(prefix)) >= ORANGEFS_MAX_XATTR_NAMELEN) {
+	if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
 		gossip_err("Invalid key length (%d)\n",
-			   (int)(strlen(name) + strlen(prefix)));
+			   (int)strlen(name));
 		return -EINVAL;
 	}
 
@@ -97,8 +97,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
 		goto out_unlock;
 
 	new_op->upcall.req.getxattr.refn = orangefs_inode->refn;
-	ret = snprintf((char *)new_op->upcall.req.getxattr.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN, "%s%s", prefix, name);
+	strcpy(new_op->upcall.req.getxattr.key, name);
 
 	/*
 	 * NOTE: Although keys are meant to be NULL terminated textual
@@ -163,10 +162,8 @@ out_unlock:
 	return ret;
 }
 
-static int orangefs_inode_removexattr(struct inode *inode,
-			    const char *prefix,
-			    const char *name,
-			    int flags)
+static int orangefs_inode_removexattr(struct inode *inode, const char *name,
+				      int flags)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op = NULL;
@@ -183,12 +180,8 @@ static int orangefs_inode_removexattr(struct inode *inode,
 	 * textual strings, I am going to explicitly pass the
 	 * length just in case we change this later on...
 	 */
-	ret = snprintf((char *)new_op->upcall.req.removexattr.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN,
-		       "%s%s",
-		       (prefix ? prefix : ""),
-		       name);
-	new_op->upcall.req.removexattr.key_sz = ret + 1;
+	strcpy(new_op->upcall.req.removexattr.key, name);
+	new_op->upcall.req.removexattr.key_sz = strlen(name) + 1;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
 		     "orangefs_inode_removexattr: key %s, key_sz %d\n",
@@ -223,8 +216,8 @@ out_unlock:
  * Returns a -ve number on error and 0 on success.  Key is text, but value
  * can be binary!
  */
-int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
-		const char *name, const void *value, size_t size, int flags)
+int orangefs_inode_setxattr(struct inode *inode, const char *name,
+			    const void *value, size_t size, int flags)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op;
@@ -232,8 +225,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 	int ret = -ENOMEM;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
-		     "%s: prefix %s, name %s, buffer_size %zd\n",
-		     __func__, prefix, name, size);
+		     "%s: name %s, buffer_size %zd\n",
+		     __func__, name, size);
 
 	if (size >= ORANGEFS_MAX_XATTR_VALUELEN ||
 	    flags < 0) {
@@ -245,29 +238,19 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 
 	internal_flag = convert_to_internal_xattr_flags(flags);
 
-	if (prefix) {
-		if (strlen(name) + strlen(prefix) >= ORANGEFS_MAX_XATTR_NAMELEN) {
-			gossip_err
-			    ("orangefs_inode_setxattr: bogus key size (%d)\n",
-			     (int)(strlen(name) + strlen(prefix)));
-			return -EINVAL;
-		}
-	} else {
-		if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
-			gossip_err
-			    ("orangefs_inode_setxattr: bogus key size (%d)\n",
-			     (int)(strlen(name)));
-			return -EINVAL;
-		}
+	if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
+		gossip_err
+		    ("orangefs_inode_setxattr: bogus key size (%d)\n",
+		     (int)(strlen(name)));
+		return -EINVAL;
 	}
 
 	/* This is equivalent to a removexattr */
 	if (size == 0 && value == NULL) {
 		gossip_debug(GOSSIP_XATTR_DEBUG,
-			     "removing xattr (%s%s)\n",
-			     prefix,
+			     "removing xattr (%s)\n",
 			     name);
-		return orangefs_inode_removexattr(inode, prefix, name, flags);
+		return orangefs_inode_removexattr(inode, name, flags);
 	}
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
@@ -288,11 +271,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 	 * strings, I am going to explicitly pass the length just in
 	 * case we change this later on...
 	 */
-	ret = snprintf((char *)new_op->upcall.req.setxattr.keyval.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN,
-		       "%s%s",
-		       prefix, name);
-	new_op->upcall.req.setxattr.keyval.key_sz = ret + 1;
+	strcpy(new_op->upcall.req.setxattr.keyval.key, name);
+	new_op->upcall.req.setxattr.keyval.key_sz = strlen(name) + 1;
 	memcpy(new_op->upcall.req.setxattr.keyval.val, value, size);
 	new_op->upcall.req.setxattr.keyval.val_sz = size;
 
@@ -455,12 +435,7 @@ static int orangefs_xattr_set_default(const struct xattr_handler *handler,
 				      size_t size,
 				      int flags)
 {
-	return orangefs_inode_setxattr(inode,
-				    "",
-				    name,
-				    buffer,
-				    size,
-				    flags);
+	return orangefs_inode_setxattr(inode, name, buffer, size, flags);
 }
 
 static int orangefs_xattr_get_default(const struct xattr_handler *handler,
@@ -470,11 +445,7 @@ static int orangefs_xattr_get_default(const struct xattr_handler *handler,
 				      void *buffer,
 				      size_t size)
 {
-	return orangefs_inode_getxattr(inode,
-				    "",
-				    name,
-				    buffer,
-				    size);
+	return orangefs_inode_getxattr(inode, name, buffer, size);
 
 }
 
-- 
2.5.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments
  2016-05-30  9:26 ` [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments Andreas Gruenbacher
@ 2016-06-03 19:44   ` Mike Marshall
  2016-06-04  9:02     ` Andreas Gruenbacher
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Marshall @ 2016-06-03 19:44 UTC (permalink / raw)
  To: Andreas Gruenbacher; +Cc: linux-fsdevel, Mike Marshall

Hi Andreas...

I'm sorry I didn't notice this right away. And that I missed the merge window
with your patch <g>... anyhow...

We use the return value in this one line you changed, our userspace code gets
ill when we send it (-ENOMEM +1) as a key length... would you change the
patch one more time, or ack my change please... I'll get these in at the next
merge window...

# git diff
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index 1165047..bdb407e 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -97,7 +97,11 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const ch
                goto out_unlock;

        new_op->upcall.req.getxattr.refn = orangefs_inode->refn;
-       strcpy(new_op->upcall.req.getxattr.key, name);
+
+       ret = snprintf((char *)new_op->upcall.req.getxattr.key,
+                      ORANGEFS_MAX_XATTR_NAMELEN,
+                      "%s",
+                      name);

        /*
         * NOTE: Although keys are meant to be NULL terminated textual

On Mon, May 30, 2016 at 5:26 AM, Andreas Gruenbacher
<agruenba@redhat.com> wrote:
> Passing the attribute prefix and name to orangefs_inode_*xattr as
> separate arguments was unnecessary before, but now that the trusted
> xattr handler is gone, the prefix is even always the empty string.
> Remove it.
>
> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
> ---
>  fs/orangefs/acl.c             |  9 ++---
>  fs/orangefs/file.c            |  2 --
>  fs/orangefs/orangefs-kernel.h |  2 --
>  fs/orangefs/xattr.c           | 81 ++++++++++++++-----------------------------
>  4 files changed, 29 insertions(+), 65 deletions(-)
>
> diff --git a/fs/orangefs/acl.c b/fs/orangefs/acl.c
> index df24864..28f2195 100644
> --- a/fs/orangefs/acl.c
> +++ b/fs/orangefs/acl.c
> @@ -43,11 +43,8 @@ struct posix_acl *orangefs_get_acl(struct inode *inode, int type)
>                      get_khandle_from_ino(inode),
>                      key,
>                      type);
> -       ret = orangefs_inode_getxattr(inode,
> -                                  "",
> -                                  key,
> -                                  value,
> -                                  ORANGEFS_MAX_XATTR_VALUELEN);
> +       ret = orangefs_inode_getxattr(inode, key, value,
> +                                     ORANGEFS_MAX_XATTR_VALUELEN);
>         /* if the key exists, convert it to an in-memory rep */
>         if (ret > 0) {
>                 acl = posix_acl_from_xattr(&init_user_ns, value, ret);
> @@ -131,7 +128,7 @@ int orangefs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
>          * will xlate to a removexattr. However, we don't want removexattr
>          * complain if attributes does not exist.
>          */
> -       error = orangefs_inode_setxattr(inode, "", name, value, size, 0);
> +       error = orangefs_inode_setxattr(inode, name, value, size, 0);
>
>  out:
>         kfree(value);
> diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
> index 5160a3f..526040e 100644
> --- a/fs/orangefs/file.c
> +++ b/fs/orangefs/file.c
> @@ -516,7 +516,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
>         if (cmd == FS_IOC_GETFLAGS) {
>                 val = 0;
>                 ret = orangefs_inode_getxattr(file_inode(file),
> -                                             "",
>                                               "user.pvfs2.meta_hint",
>                                               &val, sizeof(val));
>                 if (ret < 0 && ret != -ENODATA)
> @@ -549,7 +548,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
>                              "orangefs_ioctl: FS_IOC_SETFLAGS: %llu\n",
>                              (unsigned long long)val);
>                 ret = orangefs_inode_setxattr(file_inode(file),
> -                                             "",
>                                               "user.pvfs2.meta_hint",
>                                               &val, sizeof(val), 0);
>         }
> diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
> index 6503e37..7b542f1 100644
> --- a/fs/orangefs/orangefs-kernel.h
> +++ b/fs/orangefs/orangefs-kernel.h
> @@ -517,13 +517,11 @@ __s32 fsid_of_op(struct orangefs_kernel_op_s *op);
>  int orangefs_flush_inode(struct inode *inode);
>
>  ssize_t orangefs_inode_getxattr(struct inode *inode,
> -                            const char *prefix,
>                              const char *name,
>                              void *buffer,
>                              size_t size);
>
>  int orangefs_inode_setxattr(struct inode *inode,
> -                        const char *prefix,
>                          const char *name,
>                          const void *value,
>                          size_t size,
> diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
> index 640a98f..1165047 100644
> --- a/fs/orangefs/xattr.c
> +++ b/fs/orangefs/xattr.c
> @@ -59,8 +59,8 @@ static inline int convert_to_internal_xattr_flags(int setxattr_flags)
>   * unless the key does not exist for the file and/or if
>   * there were errors in fetching the attribute value.
>   */
> -ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
> -               const char *name, void *buffer, size_t size)
> +ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
> +                               void *buffer, size_t size)
>  {
>         struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
>         struct orangefs_kernel_op_s *new_op = NULL;
> @@ -70,12 +70,12 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
>         int fsgid;
>
>         gossip_debug(GOSSIP_XATTR_DEBUG,
> -                    "%s: prefix %s name %s, buffer_size %zd\n",
> -                    __func__, prefix, name, size);
> +                    "%s: name %s, buffer_size %zd\n",
> +                    __func__, name, size);
>
> -       if ((strlen(name) + strlen(prefix)) >= ORANGEFS_MAX_XATTR_NAMELEN) {
> +       if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
>                 gossip_err("Invalid key length (%d)\n",
> -                          (int)(strlen(name) + strlen(prefix)));
> +                          (int)strlen(name));
>                 return -EINVAL;
>         }
>
> @@ -97,8 +97,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
>                 goto out_unlock;
>
>         new_op->upcall.req.getxattr.refn = orangefs_inode->refn;
> -       ret = snprintf((char *)new_op->upcall.req.getxattr.key,
> -                      ORANGEFS_MAX_XATTR_NAMELEN, "%s%s", prefix, name);
> +       strcpy(new_op->upcall.req.getxattr.key, name);
>
>         /*
>          * NOTE: Although keys are meant to be NULL terminated textual
> @@ -163,10 +162,8 @@ out_unlock:
>         return ret;
>  }
>
> -static int orangefs_inode_removexattr(struct inode *inode,
> -                           const char *prefix,
> -                           const char *name,
> -                           int flags)
> +static int orangefs_inode_removexattr(struct inode *inode, const char *name,
> +                                     int flags)
>  {
>         struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
>         struct orangefs_kernel_op_s *new_op = NULL;
> @@ -183,12 +180,8 @@ static int orangefs_inode_removexattr(struct inode *inode,
>          * textual strings, I am going to explicitly pass the
>          * length just in case we change this later on...
>          */
> -       ret = snprintf((char *)new_op->upcall.req.removexattr.key,
> -                      ORANGEFS_MAX_XATTR_NAMELEN,
> -                      "%s%s",
> -                      (prefix ? prefix : ""),
> -                      name);
> -       new_op->upcall.req.removexattr.key_sz = ret + 1;
> +       strcpy(new_op->upcall.req.removexattr.key, name);
> +       new_op->upcall.req.removexattr.key_sz = strlen(name) + 1;
>
>         gossip_debug(GOSSIP_XATTR_DEBUG,
>                      "orangefs_inode_removexattr: key %s, key_sz %d\n",
> @@ -223,8 +216,8 @@ out_unlock:
>   * Returns a -ve number on error and 0 on success.  Key is text, but value
>   * can be binary!
>   */
> -int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
> -               const char *name, const void *value, size_t size, int flags)
> +int orangefs_inode_setxattr(struct inode *inode, const char *name,
> +                           const void *value, size_t size, int flags)
>  {
>         struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
>         struct orangefs_kernel_op_s *new_op;
> @@ -232,8 +225,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
>         int ret = -ENOMEM;
>
>         gossip_debug(GOSSIP_XATTR_DEBUG,
> -                    "%s: prefix %s, name %s, buffer_size %zd\n",
> -                    __func__, prefix, name, size);
> +                    "%s: name %s, buffer_size %zd\n",
> +                    __func__, name, size);
>
>         if (size >= ORANGEFS_MAX_XATTR_VALUELEN ||
>             flags < 0) {
> @@ -245,29 +238,19 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
>
>         internal_flag = convert_to_internal_xattr_flags(flags);
>
> -       if (prefix) {
> -               if (strlen(name) + strlen(prefix) >= ORANGEFS_MAX_XATTR_NAMELEN) {
> -                       gossip_err
> -                           ("orangefs_inode_setxattr: bogus key size (%d)\n",
> -                            (int)(strlen(name) + strlen(prefix)));
> -                       return -EINVAL;
> -               }
> -       } else {
> -               if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
> -                       gossip_err
> -                           ("orangefs_inode_setxattr: bogus key size (%d)\n",
> -                            (int)(strlen(name)));
> -                       return -EINVAL;
> -               }
> +       if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
> +               gossip_err
> +                   ("orangefs_inode_setxattr: bogus key size (%d)\n",
> +                    (int)(strlen(name)));
> +               return -EINVAL;
>         }
>
>         /* This is equivalent to a removexattr */
>         if (size == 0 && value == NULL) {
>                 gossip_debug(GOSSIP_XATTR_DEBUG,
> -                            "removing xattr (%s%s)\n",
> -                            prefix,
> +                            "removing xattr (%s)\n",
>                              name);
> -               return orangefs_inode_removexattr(inode, prefix, name, flags);
> +               return orangefs_inode_removexattr(inode, name, flags);
>         }
>
>         gossip_debug(GOSSIP_XATTR_DEBUG,
> @@ -288,11 +271,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
>          * strings, I am going to explicitly pass the length just in
>          * case we change this later on...
>          */
> -       ret = snprintf((char *)new_op->upcall.req.setxattr.keyval.key,
> -                      ORANGEFS_MAX_XATTR_NAMELEN,
> -                      "%s%s",
> -                      prefix, name);
> -       new_op->upcall.req.setxattr.keyval.key_sz = ret + 1;
> +       strcpy(new_op->upcall.req.setxattr.keyval.key, name);
> +       new_op->upcall.req.setxattr.keyval.key_sz = strlen(name) + 1;
>         memcpy(new_op->upcall.req.setxattr.keyval.val, value, size);
>         new_op->upcall.req.setxattr.keyval.val_sz = size;
>
> @@ -455,12 +435,7 @@ static int orangefs_xattr_set_default(const struct xattr_handler *handler,
>                                       size_t size,
>                                       int flags)
>  {
> -       return orangefs_inode_setxattr(inode,
> -                                   "",
> -                                   name,
> -                                   buffer,
> -                                   size,
> -                                   flags);
> +       return orangefs_inode_setxattr(inode, name, buffer, size, flags);
>  }
>
>  static int orangefs_xattr_get_default(const struct xattr_handler *handler,
> @@ -470,11 +445,7 @@ static int orangefs_xattr_get_default(const struct xattr_handler *handler,
>                                       void *buffer,
>                                       size_t size)
>  {
> -       return orangefs_inode_getxattr(inode,
> -                                   "",
> -                                   name,
> -                                   buffer,
> -                                   size);
> +       return orangefs_inode_getxattr(inode, name, buffer, size);
>
>  }
>
> --
> 2.5.5
>

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments
  2016-06-03 19:44   ` Mike Marshall
@ 2016-06-04  9:02     ` Andreas Gruenbacher
  0 siblings, 0 replies; 6+ messages in thread
From: Andreas Gruenbacher @ 2016-06-04  9:02 UTC (permalink / raw)
  To: Mike Marshall; +Cc: Andreas Gruenbacher, linux-fsdevel

Mike,

On Fri, Jun 3, 2016 at 9:44 PM, Mike Marshall <hubcap@omnibond.com> wrote:
> We use the return value in this one line you changed, our userspace code gets
> ill when we send it (-ENOMEM +1) as a key length...

ah, my mistake.  Here's a fixed version.

Thanks,
Andreas

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
 fs/orangefs/acl.c             |  9 ++---
 fs/orangefs/file.c            |  2 --
 fs/orangefs/orangefs-kernel.h |  2 --
 fs/orangefs/xattr.c           | 83 ++++++++++++++-----------------------------
 4 files changed, 30 insertions(+), 66 deletions(-)

diff --git a/fs/orangefs/acl.c b/fs/orangefs/acl.c
index df24864..28f2195 100644
--- a/fs/orangefs/acl.c
+++ b/fs/orangefs/acl.c
@@ -43,11 +43,8 @@ struct posix_acl *orangefs_get_acl(struct inode *inode, int type)
 		     get_khandle_from_ino(inode),
 		     key,
 		     type);
-	ret = orangefs_inode_getxattr(inode,
-				   "",
-				   key,
-				   value,
-				   ORANGEFS_MAX_XATTR_VALUELEN);
+	ret = orangefs_inode_getxattr(inode, key, value,
+				      ORANGEFS_MAX_XATTR_VALUELEN);
 	/* if the key exists, convert it to an in-memory rep */
 	if (ret > 0) {
 		acl = posix_acl_from_xattr(&init_user_ns, value, ret);
@@ -131,7 +128,7 @@ int orangefs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
 	 * will xlate to a removexattr. However, we don't want removexattr
 	 * complain if attributes does not exist.
 	 */
-	error = orangefs_inode_setxattr(inode, "", name, value, size, 0);
+	error = orangefs_inode_setxattr(inode, name, value, size, 0);
 
 out:
 	kfree(value);
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index 5160a3f..526040e 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -516,7 +516,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 	if (cmd == FS_IOC_GETFLAGS) {
 		val = 0;
 		ret = orangefs_inode_getxattr(file_inode(file),
-					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val));
 		if (ret < 0 && ret != -ENODATA)
@@ -549,7 +548,6 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
 			     "orangefs_ioctl: FS_IOC_SETFLAGS: %llu\n",
 			     (unsigned long long)val);
 		ret = orangefs_inode_setxattr(file_inode(file),
-					      "",
 					      "user.pvfs2.meta_hint",
 					      &val, sizeof(val), 0);
 	}
diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h
index 6503e37..7b542f1 100644
--- a/fs/orangefs/orangefs-kernel.h
+++ b/fs/orangefs/orangefs-kernel.h
@@ -517,13 +517,11 @@ __s32 fsid_of_op(struct orangefs_kernel_op_s *op);
 int orangefs_flush_inode(struct inode *inode);
 
 ssize_t orangefs_inode_getxattr(struct inode *inode,
-			     const char *prefix,
 			     const char *name,
 			     void *buffer,
 			     size_t size);
 
 int orangefs_inode_setxattr(struct inode *inode,
-			 const char *prefix,
 			 const char *name,
 			 const void *value,
 			 size_t size,
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index 640a98f..73a0c34 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -59,8 +59,8 @@ static inline int convert_to_internal_xattr_flags(int setxattr_flags)
  * unless the key does not exist for the file and/or if
  * there were errors in fetching the attribute value.
  */
-ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
-		const char *name, void *buffer, size_t size)
+ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
+				void *buffer, size_t size)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op = NULL;
@@ -70,12 +70,12 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
 	int fsgid;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
-		     "%s: prefix %s name %s, buffer_size %zd\n",
-		     __func__, prefix, name, size);
+		     "%s: name %s, buffer_size %zd\n",
+		     __func__, name, size);
 
-	if ((strlen(name) + strlen(prefix)) >= ORANGEFS_MAX_XATTR_NAMELEN) {
+	if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
 		gossip_err("Invalid key length (%d)\n",
-			   (int)(strlen(name) + strlen(prefix)));
+			   (int)strlen(name));
 		return -EINVAL;
 	}
 
@@ -97,15 +97,14 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *prefix,
 		goto out_unlock;
 
 	new_op->upcall.req.getxattr.refn = orangefs_inode->refn;
-	ret = snprintf((char *)new_op->upcall.req.getxattr.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN, "%s%s", prefix, name);
+	strcpy(new_op->upcall.req.getxattr.key, name);
 
 	/*
 	 * NOTE: Although keys are meant to be NULL terminated textual
 	 * strings, I am going to explicitly pass the length just in case
 	 * we change this later on...
 	 */
-	new_op->upcall.req.getxattr.key_sz = ret + 1;
+	new_op->upcall.req.getxattr.key_sz = strlen(name) + 1;
 
 	ret = service_operation(new_op, "orangefs_inode_getxattr",
 				get_interruptible_flag(inode));
@@ -163,10 +162,8 @@ out_unlock:
 	return ret;
 }
 
-static int orangefs_inode_removexattr(struct inode *inode,
-			    const char *prefix,
-			    const char *name,
-			    int flags)
+static int orangefs_inode_removexattr(struct inode *inode, const char *name,
+				      int flags)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op = NULL;
@@ -183,12 +180,8 @@ static int orangefs_inode_removexattr(struct inode *inode,
 	 * textual strings, I am going to explicitly pass the
 	 * length just in case we change this later on...
 	 */
-	ret = snprintf((char *)new_op->upcall.req.removexattr.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN,
-		       "%s%s",
-		       (prefix ? prefix : ""),
-		       name);
-	new_op->upcall.req.removexattr.key_sz = ret + 1;
+	strcpy(new_op->upcall.req.removexattr.key, name);
+	new_op->upcall.req.removexattr.key_sz = strlen(name) + 1;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
 		     "orangefs_inode_removexattr: key %s, key_sz %d\n",
@@ -223,8 +216,8 @@ out_unlock:
  * Returns a -ve number on error and 0 on success.  Key is text, but value
  * can be binary!
  */
-int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
-		const char *name, const void *value, size_t size, int flags)
+int orangefs_inode_setxattr(struct inode *inode, const char *name,
+			    const void *value, size_t size, int flags)
 {
 	struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
 	struct orangefs_kernel_op_s *new_op;
@@ -232,8 +225,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 	int ret = -ENOMEM;
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
-		     "%s: prefix %s, name %s, buffer_size %zd\n",
-		     __func__, prefix, name, size);
+		     "%s: name %s, buffer_size %zd\n",
+		     __func__, name, size);
 
 	if (size >= ORANGEFS_MAX_XATTR_VALUELEN ||
 	    flags < 0) {
@@ -245,29 +238,19 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 
 	internal_flag = convert_to_internal_xattr_flags(flags);
 
-	if (prefix) {
-		if (strlen(name) + strlen(prefix) >= ORANGEFS_MAX_XATTR_NAMELEN) {
-			gossip_err
-			    ("orangefs_inode_setxattr: bogus key size (%d)\n",
-			     (int)(strlen(name) + strlen(prefix)));
-			return -EINVAL;
-		}
-	} else {
-		if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
-			gossip_err
-			    ("orangefs_inode_setxattr: bogus key size (%d)\n",
-			     (int)(strlen(name)));
-			return -EINVAL;
-		}
+	if (strlen(name) >= ORANGEFS_MAX_XATTR_NAMELEN) {
+		gossip_err
+		    ("orangefs_inode_setxattr: bogus key size (%d)\n",
+		     (int)(strlen(name)));
+		return -EINVAL;
 	}
 
 	/* This is equivalent to a removexattr */
 	if (size == 0 && value == NULL) {
 		gossip_debug(GOSSIP_XATTR_DEBUG,
-			     "removing xattr (%s%s)\n",
-			     prefix,
+			     "removing xattr (%s)\n",
 			     name);
-		return orangefs_inode_removexattr(inode, prefix, name, flags);
+		return orangefs_inode_removexattr(inode, name, flags);
 	}
 
 	gossip_debug(GOSSIP_XATTR_DEBUG,
@@ -288,11 +271,8 @@ int orangefs_inode_setxattr(struct inode *inode, const char *prefix,
 	 * strings, I am going to explicitly pass the length just in
 	 * case we change this later on...
 	 */
-	ret = snprintf((char *)new_op->upcall.req.setxattr.keyval.key,
-		       ORANGEFS_MAX_XATTR_NAMELEN,
-		       "%s%s",
-		       prefix, name);
-	new_op->upcall.req.setxattr.keyval.key_sz = ret + 1;
+	strcpy(new_op->upcall.req.setxattr.keyval.key, name);
+	new_op->upcall.req.setxattr.keyval.key_sz = strlen(name) + 1;
 	memcpy(new_op->upcall.req.setxattr.keyval.val, value, size);
 	new_op->upcall.req.setxattr.keyval.val_sz = size;
 
@@ -455,12 +435,7 @@ static int orangefs_xattr_set_default(const struct xattr_handler *handler,
 				      size_t size,
 				      int flags)
 {
-	return orangefs_inode_setxattr(inode,
-				    "",
-				    name,
-				    buffer,
-				    size,
-				    flags);
+	return orangefs_inode_setxattr(inode, name, buffer, size, flags);
 }
 
 static int orangefs_xattr_get_default(const struct xattr_handler *handler,
@@ -470,11 +445,7 @@ static int orangefs_xattr_get_default(const struct xattr_handler *handler,
 				      void *buffer,
 				      size_t size)
 {
-	return orangefs_inode_getxattr(inode,
-				    "",
-				    name,
-				    buffer,
-				    size);
+	return orangefs_inode_getxattr(inode, name, buffer, size);
 
 }
 
-- 
2.5.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-06-04  9:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-30  9:25 [PATCH v2 0/3] Minor orangefs xattr cleanups Andreas Gruenbacher
2016-05-30  9:25 ` [PATCH v2 1/3] orangefs: Remove useless defines Andreas Gruenbacher
2016-05-30  9:26 ` [PATCH v2 2/3] orangefs: Remove redundant "trusted." xattr handler Andreas Gruenbacher
2016-05-30  9:26 ` [PATCH v2 3/3] orangefs: Remove useless xattr prefix arguments Andreas Gruenbacher
2016-06-03 19:44   ` Mike Marshall
2016-06-04  9:02     ` Andreas Gruenbacher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).