All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: linux-xfs@vger.kernel.org
Cc: Allison Collins <allison.henderson@oracle.com>
Subject: [PATCH 03/29] xfs: merge xfs_attrmulti_attr_remove into xfs_attrmulti_attr_set
Date: Tue, 14 Jan 2020 09:10:25 +0100	[thread overview]
Message-ID: <20200114081051.297488-4-hch@lst.de> (raw)
In-Reply-To: <20200114081051.297488-1-hch@lst.de>

Merge the ioctl handlers just like the low-level xfs_attr_set function.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 fs/xfs/xfs_ioctl.c   | 34 ++++++++++------------------------
 fs/xfs/xfs_ioctl.h   |  6 ------
 fs/xfs/xfs_ioctl32.c |  4 ++--
 3 files changed, 12 insertions(+), 32 deletions(-)

diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index 8e35887f62fa..6bd0684a3528 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -387,18 +387,20 @@ xfs_attrmulti_attr_set(
 	uint32_t		len,
 	uint32_t		flags)
 {
-	unsigned char		*kbuf;
+	unsigned char		*kbuf = NULL;
 	int			error;
 	size_t			namelen;
 
 	if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
 		return -EPERM;
-	if (len > XFS_XATTR_SIZE_MAX)
-		return -EINVAL;
 
-	kbuf = memdup_user(ubuf, len);
-	if (IS_ERR(kbuf))
-		return PTR_ERR(kbuf);
+	if (ubuf) {
+		if (len > XFS_XATTR_SIZE_MAX)
+			return -EINVAL;
+		kbuf = memdup_user(ubuf, len);
+		if (IS_ERR(kbuf))
+			return PTR_ERR(kbuf);
+	}
 
 	namelen = strlen(name);
 	error = xfs_attr_set(XFS_I(inode), name, namelen, kbuf, len, flags);
@@ -408,22 +410,6 @@ xfs_attrmulti_attr_set(
 	return error;
 }
 
-int
-xfs_attrmulti_attr_remove(
-	struct inode		*inode,
-	unsigned char		*name,
-	uint32_t		flags)
-{
-	int			error;
-
-	if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
-		return -EPERM;
-	error = xfs_attr_set(XFS_I(inode), name, strlen(name), NULL, 0, flags);
-	if (!error)
-		xfs_forget_acl(inode, name, flags);
-	return error;
-}
-
 STATIC int
 xfs_attrmulti_by_handle(
 	struct file		*parfilp,
@@ -502,8 +488,8 @@ xfs_attrmulti_by_handle(
 			ops[i].am_error = mnt_want_write_file(parfilp);
 			if (ops[i].am_error)
 				break;
-			ops[i].am_error = xfs_attrmulti_attr_remove(
-					d_inode(dentry), attr_name,
+			ops[i].am_error = xfs_attrmulti_attr_set(
+					d_inode(dentry), attr_name, NULL, 0,
 					ops[i].am_flags);
 			mnt_drop_write_file(parfilp);
 			break;
diff --git a/fs/xfs/xfs_ioctl.h b/fs/xfs/xfs_ioctl.h
index 420bd95dc326..819504df00ae 100644
--- a/fs/xfs/xfs_ioctl.h
+++ b/fs/xfs/xfs_ioctl.h
@@ -46,12 +46,6 @@ xfs_attrmulti_attr_set(
 	uint32_t		len,
 	uint32_t		flags);
 
-extern int
-xfs_attrmulti_attr_remove(
-	struct inode		*inode,
-	unsigned char		*name,
-	uint32_t		flags);
-
 extern struct dentry *
 xfs_handle_to_dentry(
 	struct file		*parfilp,
diff --git a/fs/xfs/xfs_ioctl32.c b/fs/xfs/xfs_ioctl32.c
index 769581a79c58..1092c66e48d6 100644
--- a/fs/xfs/xfs_ioctl32.c
+++ b/fs/xfs/xfs_ioctl32.c
@@ -486,8 +486,8 @@ xfs_compat_attrmulti_by_handle(
 			ops[i].am_error = mnt_want_write_file(parfilp);
 			if (ops[i].am_error)
 				break;
-			ops[i].am_error = xfs_attrmulti_attr_remove(
-					d_inode(dentry), attr_name,
+			ops[i].am_error = xfs_attrmulti_attr_set(
+					d_inode(dentry), attr_name, NULL, 0,
 					ops[i].am_flags);
 			mnt_drop_write_file(parfilp);
 			break;
-- 
2.24.1


  parent reply	other threads:[~2020-01-14  8:15 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-14  8:10 clean up the attr interface v2 Christoph Hellwig
2020-01-14  8:10 ` [PATCH 01/29] xfs: remove the ATTR_INCOMPLETE flag Christoph Hellwig
2020-01-17  0:59   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 02/29] xfs: merge xfs_attr_remove into xfs_attr_set Christoph Hellwig
2020-01-21 17:28   ` Darrick J. Wong
2020-01-25  4:17     ` Allison Collins
2020-01-25 23:22       ` Christoph Hellwig
2020-01-26 22:23         ` Darrick J. Wong
2020-01-14  8:10 ` Christoph Hellwig [this message]
2020-01-21 17:41   ` [PATCH 03/29] xfs: merge xfs_attrmulti_attr_remove into xfs_attrmulti_attr_set Darrick J. Wong
2020-01-23 22:33     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 04/29] xfs: use strndup_user in XFS_IOC_ATTRMULTI_BY_HANDLE Christoph Hellwig
2020-01-21 17:45   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 05/29] xfs: factor out a helper for a single XFS_IOC_ATTRMULTI_BY_HANDLE op Christoph Hellwig
2020-01-21 17:54   ` Darrick J. Wong
2020-01-23 22:34     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 06/29] xfs: remove the name == NULL check from xfs_attr_args_init Christoph Hellwig
2020-01-21 17:57   ` Darrick J. Wong
2020-01-23 22:35     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 07/29] xfs: remove the MAXNAMELEN " Christoph Hellwig
2020-01-21 18:03   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 08/29] xfs: move struct xfs_da_args to xfs_types.h Christoph Hellwig
2020-01-21 18:48   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 09/29] xfs: turn xfs_da_args.value into a void pointer Christoph Hellwig
2020-01-21 18:07   ` Darrick J. Wong
2020-01-23 22:36     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 10/29] xfs: pass an initialized xfs_da_args structure to xfs_attr_set Christoph Hellwig
2020-01-21 18:10   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 11/29] xfs: pass an initialized xfs_da_args to xfs_attr_get Christoph Hellwig
2020-01-21 18:12   ` Darrick J. Wong
2020-01-23 22:39     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 12/29] xfs: remove the xfs_inode argument to xfs_attr_get_ilocked Christoph Hellwig
2020-01-21 18:13   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 13/29] xfs: remove ATTR_KERNOVAL Christoph Hellwig
2020-01-21 18:15   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 14/29] xfs: remove ATTR_ALLOC and XFS_DA_OP_ALLOCVAL Christoph Hellwig
2020-01-21 18:17   ` Darrick J. Wong
2020-01-23 22:40     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 15/29] xfs: replace ATTR_KERNOTIME with XFS_DA_OP_NOTIME Christoph Hellwig
2020-01-21 18:20   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 16/29] xfs: factor out a xfs_attr_match helper Christoph Hellwig
2020-01-21 18:27   ` Darrick J. Wong
2020-01-23 22:41     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 17/29] xfs: cleanup xfs_attr_list_context Christoph Hellwig
2020-01-21 18:30   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 18/29] xfs: remove the unused ATTR_ENTRY macro Christoph Hellwig
2020-01-21 18:33   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 19/29] xfs: replace ATTR_ENTBASESIZE with offsetoff Christoph Hellwig
2020-01-21 18:36   ` Darrick J. Wong
2020-01-23 22:43     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 20/29] xfs: move the legacy xfs_attr_list to xfs_ioctl.c Christoph Hellwig
2020-01-21 18:41   ` Darrick J. Wong
2020-01-24 23:13     ` Christoph Hellwig
2020-01-14  8:10 ` [PATCH 21/29] xfs: rename xfs_attr_list_int to xfs_attr_list Christoph Hellwig
2020-01-21 18:42   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 22/29] xfs: lift common checks into xfs_ioc_attr_list Christoph Hellwig
2020-01-21 18:43   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 23/29] xfs: lift buffer allocation " Christoph Hellwig
2020-01-21 18:49   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 24/29] xfs: lift cursor copy in/out " Christoph Hellwig
2020-01-21 18:52   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 25/29] xfs: improve xfs_forget_acl Christoph Hellwig
2020-01-21 18:56   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 26/29] xfs: clean up the ATTR_REPLACE checks Christoph Hellwig
2020-01-21 18:57   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 27/29] xfs: clean up the attr flag confusion Christoph Hellwig
2020-01-21 19:44   ` Darrick J. Wong
2020-01-24 23:24     ` Christoph Hellwig
2020-01-25 23:10       ` Christoph Hellwig
2020-01-26 22:24         ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 28/29] xfs: remove XFS_DA_OP_INCOMPLETE Christoph Hellwig
2020-01-21 19:45   ` Darrick J. Wong
2020-01-14  8:10 ` [PATCH 29/29] xfs: embedded the attrlist cursor into struct xfs_attr_list_context Christoph Hellwig
2020-01-21 19:04   ` Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200114081051.297488-4-hch@lst.de \
    --to=hch@lst.de \
    --cc=allison.henderson@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.