All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miklos Szeredi <mszeredi@redhat.com>
To: linux-fsdevel@vger.kernel.org
Cc: Al Viro <viro@zeniv.linux.org.uk>,
	Al Viro <viro@ZenIV.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Amir Goldstein <amir73il@gmail.com>,
	David Howells <dhowells@redhat.com>,
	Yu-li Lin <yulilin@google.com>,
	Chirantan Ekbote <chirantan@chromium.org>
Subject: [PATCH v4 02/10] hugetlbfs: cleanup mknod and tmpfile
Date: Thu, 22 Sep 2022 10:44:34 +0200	[thread overview]
Message-ID: <20220922084442.2401223-3-mszeredi@redhat.com> (raw)
In-Reply-To: <20220922084442.2401223-1-mszeredi@redhat.com>

From: Al Viro <viro@zeniv.linux.org.uk>

Duplicate the few lines that are shared between hugetlbfs_mknod() and
hugetlbfs_tmpfile().

This is a prerequisite for sanely changing the signature of ->tmpfile().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
---
 fs/hugetlbfs/inode.c | 40 ++++++++++++++++------------------------
 1 file changed, 16 insertions(+), 24 deletions(-)

diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index f7a5b5124d8a..0b458beb318c 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -885,33 +885,18 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb,
 /*
  * File creation. Allocate an inode, and we're done..
  */
-static int do_hugetlbfs_mknod(struct inode *dir,
-			struct dentry *dentry,
-			umode_t mode,
-			dev_t dev,
-			bool tmpfile)
+static int hugetlbfs_mknod(struct user_namespace *mnt_userns, struct inode *dir,
+			   struct dentry *dentry, umode_t mode, dev_t dev)
 {
 	struct inode *inode;
-	int error = -ENOSPC;
 
 	inode = hugetlbfs_get_inode(dir->i_sb, dir, mode, dev);
-	if (inode) {
-		dir->i_ctime = dir->i_mtime = current_time(dir);
-		if (tmpfile) {
-			d_tmpfile(dentry, inode);
-		} else {
-			d_instantiate(dentry, inode);
-			dget(dentry);/* Extra count - pin the dentry in core */
-		}
-		error = 0;
-	}
-	return error;
-}
-
-static int hugetlbfs_mknod(struct user_namespace *mnt_userns, struct inode *dir,
-			   struct dentry *dentry, umode_t mode, dev_t dev)
-{
-	return do_hugetlbfs_mknod(dir, dentry, mode, dev, false);
+	if (!inode)
+		return -ENOSPC;
+	dir->i_ctime = dir->i_mtime = current_time(dir);
+	d_instantiate(dentry, inode);
+	dget(dentry);/* Extra count - pin the dentry in core */
+	return 0;
 }
 
 static int hugetlbfs_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
@@ -935,7 +920,14 @@ static int hugetlbfs_tmpfile(struct user_namespace *mnt_userns,
 			     struct inode *dir, struct dentry *dentry,
 			     umode_t mode)
 {
-	return do_hugetlbfs_mknod(dir, dentry, mode | S_IFREG, 0, true);
+	struct inode *inode;
+
+	inode = hugetlbfs_get_inode(dir->i_sb, dir, mode | S_IFREG, 0);
+	if (!inode)
+		return -ENOSPC;
+	dir->i_ctime = dir->i_mtime = current_time(dir);
+	d_tmpfile(dentry, inode);
+	return 0;
 }
 
 static int hugetlbfs_symlink(struct user_namespace *mnt_userns,
-- 
2.37.3


  parent reply	other threads:[~2022-09-22  8:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-22  8:44 [PATCH v4 00/10] fuse tmpfile Miklos Szeredi
2022-09-22  8:44 ` [PATCH v4 01/10] vfs: add vfs_tmpfile_open() helper Miklos Szeredi
2022-09-22 15:23   ` Christian Brauner
2022-09-22  8:44 ` Miklos Szeredi [this message]
2022-09-22  8:44 ` [PATCH v4 03/10] cachefiles: tmpfile error handling cleanup Miklos Szeredi
2022-09-22  8:44 ` [PATCH v4 04/10] cachefiles: only pass inode to *mark_inode_inuse() helpers Miklos Szeredi
2022-09-22 15:24   ` Christian Brauner
2022-09-22 16:22   ` Al Viro
2022-09-23 15:42     ` Miklos Szeredi
2022-09-24  4:56       ` Al Viro
2022-09-24  5:02         ` Miklos Szeredi
2022-09-24 14:37           ` Al Viro
2022-09-22  8:44 ` [PATCH v4 05/10] cachefiles: use vfs_tmpfile_open() helper Miklos Szeredi
2022-09-22 15:26   ` Christian Brauner
2022-09-22  8:44 ` [PATCH v4 06/10] ovl: " Miklos Szeredi
2022-09-22  8:44 ` [PATCH v4 07/10] vfs: make vfs_tmpfile() static Miklos Szeredi
2022-09-22  8:44 ` [PATCH v4 08/10] vfs: move open right after ->tmpfile() Miklos Szeredi
2022-09-22  8:44 ` [PATCH v4 09/10] vfs: open inside ->tmpfile() Miklos Szeredi
2022-09-22 15:27   ` Christian Brauner
2022-09-22  8:44 ` [PATCH v4 10/10] fuse: implement ->tmpfile() Miklos Szeredi
2022-09-22 15:29   ` Christian Brauner
2022-09-29  8:37 ` [PATCH v4 00/10] fuse tmpfile David Howells
2022-09-29  8:44 ` [PATCH v4 05/10] cachefiles: use vfs_tmpfile_open() helper David Howells
2022-09-30 13:53   ` Miklos Szeredi

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=20220922084442.2401223-3-mszeredi@redhat.com \
    --to=mszeredi@redhat.com \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=chirantan@chromium.org \
    --cc=dhowells@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yulilin@google.com \
    /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.