* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
[not found] <20250203162734.2179532-1-sashal@kernel.org>
@ 2025-02-05 1:13 ` Hongbo Li
2025-02-05 8:53 ` Greg KH
0 siblings, 1 reply; 6+ messages in thread
From: Hongbo Li @ 2025-02-05 1:13 UTC (permalink / raw)
To: stable, stable-commits; +Cc: Richard Weinberger, Anton Ivanov, Johannes Berg
On 2025/2/4 0:27, Sasha Levin wrote:
> This is a note to let you know that I've just added the patch titled
>
> hostfs: convert hostfs to use the new mount API
>
> to the 6.6-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
Hi Sasha,
If this, the fix : ef9ca17ca458 ("hostfs: fix the host directory parse
when mounting.") also should be added. It fixes the mounting bug when
pass the host directory.
Thanks,
Hongbo
> The filename of the patch is:
> hostfs-convert-hostfs-to-use-the-new-mount-api.patch
> and it can be found in the queue-6.6 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@vger.kernel.org> know about it.
>
>
>
> commit 6f2433956e6ade80d59bd673d4062ec2c1bacc3e
> Author: Hongbo Li <lihongbo22@huawei.com>
> Date: Thu May 30 20:01:11 2024 +0800
>
> hostfs: convert hostfs to use the new mount API
>
> [ Upstream commit cd140ce9f611a5e9d2a5989a282b75e55c71dab3 ]
>
> Convert the hostfs filesystem to the new internal mount API as the old
> one will be obsoleted and removed. This allows greater flexibility in
> communication of mount parameters between userspace, the VFS and the
> filesystem.
>
> See Documentation/filesystems/mount_api.txt for more information.
>
> Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
> Link: https://lore.kernel.org/r/20240530120111.3794664-1-lihongbo22@huawei.com
> Signed-off-by: Christian Brauner <brauner@kernel.org>
> Stable-dep-of: 60a600243244 ("hostfs: fix string handling in __dentry_name()")
> Signed-off-by: Sasha Levin <sashal@kernel.org>
>
> diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
> index ff201753fd181..1fb8eacb9817f 100644
> --- a/fs/hostfs/hostfs_kern.c
> +++ b/fs/hostfs/hostfs_kern.c
> @@ -16,11 +16,16 @@
> #include <linux/seq_file.h>
> #include <linux/writeback.h>
> #include <linux/mount.h>
> +#include <linux/fs_context.h>
> #include <linux/namei.h>
> #include "hostfs.h"
> #include <init.h>
> #include <kern.h>
>
> +struct hostfs_fs_info {
> + char *host_root_path;
> +};
> +
> struct hostfs_inode_info {
> int fd;
> fmode_t mode;
> @@ -90,8 +95,10 @@ static char *__dentry_name(struct dentry *dentry, char *name)
> char *p = dentry_path_raw(dentry, name, PATH_MAX);
> char *root;
> size_t len;
> + struct hostfs_fs_info *fsi;
>
> - root = dentry->d_sb->s_fs_info;
> + fsi = dentry->d_sb->s_fs_info;
> + root = fsi->host_root_path;
> len = strlen(root);
> if (IS_ERR(p)) {
> __putname(name);
> @@ -196,8 +203,10 @@ static int hostfs_statfs(struct dentry *dentry, struct kstatfs *sf)
> long long f_bavail;
> long long f_files;
> long long f_ffree;
> + struct hostfs_fs_info *fsi;
>
> - err = do_statfs(dentry->d_sb->s_fs_info,
> + fsi = dentry->d_sb->s_fs_info;
> + err = do_statfs(fsi->host_root_path,
> &sf->f_bsize, &f_blocks, &f_bfree, &f_bavail, &f_files,
> &f_ffree, &sf->f_fsid, sizeof(sf->f_fsid),
> &sf->f_namelen);
> @@ -245,7 +254,11 @@ static void hostfs_free_inode(struct inode *inode)
>
> static int hostfs_show_options(struct seq_file *seq, struct dentry *root)
> {
> - const char *root_path = root->d_sb->s_fs_info;
> + struct hostfs_fs_info *fsi;
> + const char *root_path;
> +
> + fsi = root->d_sb->s_fs_info;
> + root_path = fsi->host_root_path;
> size_t offset = strlen(root_ino) + 1;
>
> if (strlen(root_path) > offset)
> @@ -924,10 +937,11 @@ static const struct inode_operations hostfs_link_iops = {
> .get_link = hostfs_get_link,
> };
>
> -static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
> +static int hostfs_fill_super(struct super_block *sb, struct fs_context *fc)
> {
> + struct hostfs_fs_info *fsi = sb->s_fs_info;
> struct inode *root_inode;
> - char *host_root_path, *req_root = d;
> + char *host_root = fc->source;
> int err;
>
> sb->s_blocksize = 1024;
> @@ -941,15 +955,15 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
> return err;
>
> /* NULL is printed as '(null)' by printf(): avoid that. */
> - if (req_root == NULL)
> - req_root = "";
> + if (fc->source == NULL)
> + host_root = "";
>
> - sb->s_fs_info = host_root_path =
> - kasprintf(GFP_KERNEL, "%s/%s", root_ino, req_root);
> - if (host_root_path == NULL)
> + fsi->host_root_path =
> + kasprintf(GFP_KERNEL, "%s/%s", root_ino, host_root);
> + if (fsi->host_root_path == NULL)
> return -ENOMEM;
>
> - root_inode = hostfs_iget(sb, host_root_path);
> + root_inode = hostfs_iget(sb, fsi->host_root_path);
> if (IS_ERR(root_inode))
> return PTR_ERR(root_inode);
>
> @@ -957,7 +971,7 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
> char *name;
>
> iput(root_inode);
> - name = follow_link(host_root_path);
> + name = follow_link(fsi->host_root_path);
> if (IS_ERR(name))
> return PTR_ERR(name);
>
> @@ -974,11 +988,38 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
> return 0;
> }
>
> -static struct dentry *hostfs_read_sb(struct file_system_type *type,
> - int flags, const char *dev_name,
> - void *data)
> +static int hostfs_fc_get_tree(struct fs_context *fc)
> {
> - return mount_nodev(type, flags, data, hostfs_fill_sb_common);
> + return get_tree_nodev(fc, hostfs_fill_super);
> +}
> +
> +static void hostfs_fc_free(struct fs_context *fc)
> +{
> + struct hostfs_fs_info *fsi = fc->s_fs_info;
> +
> + if (!fsi)
> + return;
> +
> + kfree(fsi->host_root_path);
> + kfree(fsi);
> +}
> +
> +static const struct fs_context_operations hostfs_context_ops = {
> + .get_tree = hostfs_fc_get_tree,
> + .free = hostfs_fc_free,
> +};
> +
> +static int hostfs_init_fs_context(struct fs_context *fc)
> +{
> + struct hostfs_fs_info *fsi;
> +
> + fsi = kzalloc(sizeof(*fsi), GFP_KERNEL);
> + if (!fsi)
> + return -ENOMEM;
> +
> + fc->s_fs_info = fsi;
> + fc->ops = &hostfs_context_ops;
> + return 0;
> }
>
> static void hostfs_kill_sb(struct super_block *s)
> @@ -988,11 +1029,11 @@ static void hostfs_kill_sb(struct super_block *s)
> }
>
> static struct file_system_type hostfs_type = {
> - .owner = THIS_MODULE,
> - .name = "hostfs",
> - .mount = hostfs_read_sb,
> - .kill_sb = hostfs_kill_sb,
> - .fs_flags = 0,
> + .owner = THIS_MODULE,
> + .name = "hostfs",
> + .init_fs_context = hostfs_init_fs_context,
> + .kill_sb = hostfs_kill_sb,
> + .fs_flags = 0,
> };
> MODULE_ALIAS_FS("hostfs");
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
2025-02-05 1:13 ` Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree Hongbo Li
@ 2025-02-05 8:53 ` Greg KH
2025-02-06 1:09 ` Hongbo Li
0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2025-02-05 8:53 UTC (permalink / raw)
To: Hongbo Li
Cc: stable, stable-commits, Richard Weinberger, Anton Ivanov,
Johannes Berg
On Wed, Feb 05, 2025 at 09:13:33AM +0800, Hongbo Li wrote:
>
>
> On 2025/2/4 0:27, Sasha Levin wrote:
> > This is a note to let you know that I've just added the patch titled
> >
> > hostfs: convert hostfs to use the new mount API
> >
> > to the 6.6-stable tree which can be found at:
> > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> >
>
> Hi Sasha,
>
> If this, the fix : ef9ca17ca458 ("hostfs: fix the host directory parse when
> mounting.") also should be added. It fixes the mounting bug when pass the
> host directory.
I've swept the queues and have added the "fixes for the fixes" commits
like this one now, thanks!
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
2025-02-05 8:53 ` Greg KH
@ 2025-02-06 1:09 ` Hongbo Li
2025-02-06 3:54 ` Greg KH
0 siblings, 1 reply; 6+ messages in thread
From: Hongbo Li @ 2025-02-06 1:09 UTC (permalink / raw)
To: Greg KH, sashal
Cc: stable, stable-commits, Richard Weinberger, Anton Ivanov,
Johannes Berg
Well, by the way, is the patch added because there are use cases for the
new mount API in hostfs?
Thanks,
Hongbo
On 2025/2/5 16:53, Greg KH wrote:
> On Wed, Feb 05, 2025 at 09:13:33AM +0800, Hongbo Li wrote:
>>
>>
>> On 2025/2/4 0:27, Sasha Levin wrote:
>>> This is a note to let you know that I've just added the patch titled
>>>
>>> hostfs: convert hostfs to use the new mount API
>>>
>>> to the 6.6-stable tree which can be found at:
>>> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>>>
>>
>> Hi Sasha,
>>
>> If this, the fix : ef9ca17ca458 ("hostfs: fix the host directory parse when
>> mounting.") also should be added. It fixes the mounting bug when pass the
>> host directory.
>
> I've swept the queues and have added the "fixes for the fixes" commits
> like this one now, thanks!
>
> greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
2025-02-06 1:09 ` Hongbo Li
@ 2025-02-06 3:54 ` Greg KH
2025-02-07 1:22 ` Hongbo Li
0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2025-02-06 3:54 UTC (permalink / raw)
To: Hongbo Li
Cc: sashal, stable, stable-commits, Richard Weinberger, Anton Ivanov,
Johannes Berg
On Thu, Feb 06, 2025 at 09:09:17AM +0800, Hongbo Li wrote:
> Well, by the way, is the patch added because there are use cases for the new
> mount API in hostfs?
I am sorry, I don't understand the question.
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
2025-02-06 3:54 ` Greg KH
@ 2025-02-07 1:22 ` Hongbo Li
2025-02-07 15:10 ` Greg KH
0 siblings, 1 reply; 6+ messages in thread
From: Hongbo Li @ 2025-02-07 1:22 UTC (permalink / raw)
To: Greg KH
Cc: sashal, stable, stable-commits, Richard Weinberger, Anton Ivanov,
Johannes Berg
On 2025/2/6 11:54, Greg KH wrote:
> On Thu, Feb 06, 2025 at 09:09:17AM +0800, Hongbo Li wrote:
>> Well, by the way, is the patch added because there are use cases for the new
>> mount API in hostfs?
>
> I am sorry, I don't understand the question.
>
Sorry for my poor expression, I just wonder why this patch should be
backported to the 6.6-stable tree. :)
Thanks,
Hongbo
> greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree
2025-02-07 1:22 ` Hongbo Li
@ 2025-02-07 15:10 ` Greg KH
0 siblings, 0 replies; 6+ messages in thread
From: Greg KH @ 2025-02-07 15:10 UTC (permalink / raw)
To: Hongbo Li
Cc: sashal, stable, stable-commits, Richard Weinberger, Anton Ivanov,
Johannes Berg
On Fri, Feb 07, 2025 at 09:22:34AM +0800, Hongbo Li wrote:
>
>
> On 2025/2/6 11:54, Greg KH wrote:
> > On Thu, Feb 06, 2025 at 09:09:17AM +0800, Hongbo Li wrote:
> > > Well, by the way, is the patch added because there are use cases for the new
> > > mount API in hostfs?
> >
> > I am sorry, I don't understand the question.
> >
>
> Sorry for my poor expression, I just wonder why this patch should be
> backported to the 6.6-stable tree. :)
Ah. It was a dependency for a patch later in the series, and was
documented as such with the "Stable-dep-of:" line in the commit.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-02-07 15:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250203162734.2179532-1-sashal@kernel.org>
2025-02-05 1:13 ` Patch "hostfs: convert hostfs to use the new mount API" has been added to the 6.6-stable tree Hongbo Li
2025-02-05 8:53 ` Greg KH
2025-02-06 1:09 ` Hongbo Li
2025-02-06 3:54 ` Greg KH
2025-02-07 1:22 ` Hongbo Li
2025-02-07 15:10 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox