| From e2e430f312e200866016db91fcd80158e2494ce4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 22 Nov 2023 12:17:37 -0500 |
| Subject: fs: indicate request originates from old mount API |
| |
| From: Christian Brauner <brauner@kernel.org> |
| |
| [ Upstream commit f67d922edb4e95a4a56d07d5d40a76dd4f23a85b ] |
| |
| We already communicate to filesystems when a remount request comes from |
| the old mount API as some filesystems choose to implement different |
| behavior in the new mount API than the old mount API to e.g., take the |
| chance to fix significant API bugs. Allow the same for regular mount |
| requests. |
| |
| Fixes: b330966f79fb ("fuse: reject options on reconfigure via fsconfig(2)") |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> |
| Reviewed-by: Anand Jain <anand.jain@oracle.com> |
| Signed-off-by: Christian Brauner <brauner@kernel.org> |
| Signed-off-by: Josef Bacik <josef@toxicpanda.com> |
| Reviewed-by: David Sterba <dsterba@suse.com> |
| Signed-off-by: David Sterba <dsterba@suse.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/namespace.c | 11 +++++++++++ |
| 1 file changed, 11 insertions(+) |
| |
| diff --git a/fs/namespace.c b/fs/namespace.c |
| index e157efc54023..bfc5cff0e196 100644 |
| --- a/fs/namespace.c |
| +++ b/fs/namespace.c |
| @@ -2873,7 +2873,12 @@ static int do_remount(struct path *path, int ms_flags, int sb_flags, |
| if (IS_ERR(fc)) |
| return PTR_ERR(fc); |
| |
| + /* |
| + * Indicate to the filesystem that the remount request is coming |
| + * from the legacy mount system call. |
| + */ |
| fc->oldapi = true; |
| + |
| err = parse_monolithic_mount_data(fc, data); |
| if (!err) { |
| down_write(&sb->s_umount); |
| @@ -3322,6 +3327,12 @@ static int do_new_mount(struct path *path, const char *fstype, int sb_flags, |
| if (IS_ERR(fc)) |
| return PTR_ERR(fc); |
| |
| + /* |
| + * Indicate to the filesystem that the mount request is coming |
| + * from the legacy mount system call. |
| + */ |
| + fc->oldapi = true; |
| + |
| if (subtype) |
| err = vfs_parse_fs_string(fc, "subtype", |
| subtype, strlen(subtype)); |
| -- |
| 2.43.0 |
| |