* [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
@ 2025-02-12 18:04 Mateusz Guzik
2025-02-13 15:05 ` Christian Brauner
2025-02-19 16:11 ` Jan Kara
0 siblings, 2 replies; 3+ messages in thread
From: Mateusz Guzik @ 2025-02-12 18:04 UTC (permalink / raw)
To: brauner; +Cc: viro, jack, linux-kernel, linux-fsdevel, Mateusz Guzik
The former is a no-op wrapper with the same argument.
I left it in place to not lose the information who needs it -- one day
"pseudo" inodes may start differing from what alloc_inode() returns.
In the meantime no point taking a detour.
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
---
fs/inode.c | 29 ++++++++++++-----------------
include/linux/fs.h | 6 +++++-
2 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/fs/inode.c b/fs/inode.c
index 5587aabdaa5e..6e251e43bf70 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -327,7 +327,17 @@ static void i_callback(struct rcu_head *head)
free_inode_nonrcu(inode);
}
-static struct inode *alloc_inode(struct super_block *sb)
+/**
+ * alloc_inode - obtain an inode
+ * @sb: superblock
+ *
+ * Allocates a new inode for given superblock.
+ * Inode wont be chained in superblock s_inodes list
+ * This means :
+ * - fs can't be unmount
+ * - quotas, fsnotify, writeback can't work
+ */
+struct inode *alloc_inode(struct super_block *sb)
{
const struct super_operations *ops = sb->s_op;
struct inode *inode;
@@ -1159,21 +1169,6 @@ unsigned int get_next_ino(void)
}
EXPORT_SYMBOL(get_next_ino);
-/**
- * new_inode_pseudo - obtain an inode
- * @sb: superblock
- *
- * Allocates a new inode for given superblock.
- * Inode wont be chained in superblock s_inodes list
- * This means :
- * - fs can't be unmount
- * - quotas, fsnotify, writeback can't work
- */
-struct inode *new_inode_pseudo(struct super_block *sb)
-{
- return alloc_inode(sb);
-}
-
/**
* new_inode - obtain an inode
* @sb: superblock
@@ -1190,7 +1185,7 @@ struct inode *new_inode(struct super_block *sb)
{
struct inode *inode;
- inode = new_inode_pseudo(sb);
+ inode = alloc_inode(sb);
if (inode)
inode_sb_list_add(inode);
return inode;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 640949116cf9..ac5d699e3aab 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -3287,7 +3287,11 @@ static inline void __iget(struct inode *inode)
extern void iget_failed(struct inode *);
extern void clear_inode(struct inode *);
extern void __destroy_inode(struct inode *);
-extern struct inode *new_inode_pseudo(struct super_block *sb);
+struct inode *alloc_inode(struct super_block *sb);
+static inline struct inode *new_inode_pseudo(struct super_block *sb)
+{
+ return alloc_inode(sb);
+}
extern struct inode *new_inode(struct super_block *sb);
extern void free_inode_nonrcu(struct inode *inode);
extern int setattr_should_drop_suidgid(struct mnt_idmap *, struct inode *);
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
2025-02-12 18:04 [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode() Mateusz Guzik
@ 2025-02-13 15:05 ` Christian Brauner
2025-02-19 16:11 ` Jan Kara
1 sibling, 0 replies; 3+ messages in thread
From: Christian Brauner @ 2025-02-13 15:05 UTC (permalink / raw)
To: Mateusz Guzik; +Cc: Christian Brauner, viro, jack, linux-kernel, linux-fsdevel
On Wed, 12 Feb 2025 19:04:59 +0100, Mateusz Guzik wrote:
> The former is a no-op wrapper with the same argument.
>
> I left it in place to not lose the information who needs it -- one day
> "pseudo" inodes may start differing from what alloc_inode() returns.
>
> In the meantime no point taking a detour.
>
> [...]
Applied to the vfs-6.15.misc branch of the vfs/vfs.git tree.
Patches in the vfs-6.15.misc branch should appear in linux-next soon.
Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.
It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.
Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.15.misc
[1/1] vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
https://git.kernel.org/vfs/vfs/c/e298fc4edca8
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
2025-02-12 18:04 [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode() Mateusz Guzik
2025-02-13 15:05 ` Christian Brauner
@ 2025-02-19 16:11 ` Jan Kara
1 sibling, 0 replies; 3+ messages in thread
From: Jan Kara @ 2025-02-19 16:11 UTC (permalink / raw)
To: Mateusz Guzik; +Cc: brauner, viro, jack, linux-kernel, linux-fsdevel
On Wed 12-02-25 19:04:59, Mateusz Guzik wrote:
> The former is a no-op wrapper with the same argument.
>
> I left it in place to not lose the information who needs it -- one day
> "pseudo" inodes may start differing from what alloc_inode() returns.
>
> In the meantime no point taking a detour.
>
> Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@suse.cz>
Honza
> ---
> fs/inode.c | 29 ++++++++++++-----------------
> include/linux/fs.h | 6 +++++-
> 2 files changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/fs/inode.c b/fs/inode.c
> index 5587aabdaa5e..6e251e43bf70 100644
> --- a/fs/inode.c
> +++ b/fs/inode.c
> @@ -327,7 +327,17 @@ static void i_callback(struct rcu_head *head)
> free_inode_nonrcu(inode);
> }
>
> -static struct inode *alloc_inode(struct super_block *sb)
> +/**
> + * alloc_inode - obtain an inode
> + * @sb: superblock
> + *
> + * Allocates a new inode for given superblock.
> + * Inode wont be chained in superblock s_inodes list
> + * This means :
> + * - fs can't be unmount
> + * - quotas, fsnotify, writeback can't work
> + */
> +struct inode *alloc_inode(struct super_block *sb)
> {
> const struct super_operations *ops = sb->s_op;
> struct inode *inode;
> @@ -1159,21 +1169,6 @@ unsigned int get_next_ino(void)
> }
> EXPORT_SYMBOL(get_next_ino);
>
> -/**
> - * new_inode_pseudo - obtain an inode
> - * @sb: superblock
> - *
> - * Allocates a new inode for given superblock.
> - * Inode wont be chained in superblock s_inodes list
> - * This means :
> - * - fs can't be unmount
> - * - quotas, fsnotify, writeback can't work
> - */
> -struct inode *new_inode_pseudo(struct super_block *sb)
> -{
> - return alloc_inode(sb);
> -}
> -
> /**
> * new_inode - obtain an inode
> * @sb: superblock
> @@ -1190,7 +1185,7 @@ struct inode *new_inode(struct super_block *sb)
> {
> struct inode *inode;
>
> - inode = new_inode_pseudo(sb);
> + inode = alloc_inode(sb);
> if (inode)
> inode_sb_list_add(inode);
> return inode;
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 640949116cf9..ac5d699e3aab 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -3287,7 +3287,11 @@ static inline void __iget(struct inode *inode)
> extern void iget_failed(struct inode *);
> extern void clear_inode(struct inode *);
> extern void __destroy_inode(struct inode *);
> -extern struct inode *new_inode_pseudo(struct super_block *sb);
> +struct inode *alloc_inode(struct super_block *sb);
> +static inline struct inode *new_inode_pseudo(struct super_block *sb)
> +{
> + return alloc_inode(sb);
> +}
> extern struct inode *new_inode(struct super_block *sb);
> extern void free_inode_nonrcu(struct inode *inode);
> extern int setattr_should_drop_suidgid(struct mnt_idmap *, struct inode *);
> --
> 2.43.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-19 16:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-12 18:04 [PATCH] vfs: inline new_inode_pseudo() and de-staticize alloc_inode() Mateusz Guzik
2025-02-13 15:05 ` Christian Brauner
2025-02-19 16:11 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox