* [PATCH AUTOSEL 6.8 02/18] fs/9p: translate O_TRUNC into OTRUNC
2024-04-23 11:00 [PATCH AUTOSEL 6.8 01/18] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
@ 2024-04-23 11:00 ` Sasha Levin
2024-04-23 11:00 ` [PATCH AUTOSEL 6.8 03/18] fs/9p: fix the cache always being enabled on files with qid flags Sasha Levin
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2024-04-23 11:00 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho,
asmadeus, v9fs
From: Joakim Sindholt <opensource@zhasha.com>
[ Upstream commit 87de39e70503e04ddb58965520b15eb9efa7eef3 ]
This one hits both 9P2000 and .u as it appears v9fs has never translated
the O_TRUNC flag.
Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/9p/vfs_inode.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index e337fec9b18e1..ffb76ec3cd9b3 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -178,6 +178,9 @@ int v9fs_uflags2omode(int uflags, int extended)
break;
}
+ if (uflags & O_TRUNC)
+ ret |= P9_OTRUNC;
+
if (extended) {
if (uflags & O_EXCL)
ret |= P9_OEXCL;
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 6.8 03/18] fs/9p: fix the cache always being enabled on files with qid flags
2024-04-23 11:00 [PATCH AUTOSEL 6.8 01/18] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
2024-04-23 11:00 ` [PATCH AUTOSEL 6.8 02/18] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
@ 2024-04-23 11:00 ` Sasha Levin
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 04/18] 9p: explicitly deny setlease attempts Sasha Levin
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2024-04-23 11:00 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho,
asmadeus, v9fs
From: Joakim Sindholt <opensource@zhasha.com>
[ Upstream commit 4e5d208cc9bd5fbc95d536fa223b4b14c37b8ca8 ]
I'm not sure why this check was ever here. After updating to 6.6 I
suddenly found caching had been turned on by default and neither
cache=none nor the new directio would turn it off. After walking through
the new code very manually I realized that it's because the caching has
to be, in effect, turned off explicitly by setting P9L_DIRECT and
whenever a file has a flag, in my case QTAPPEND, it doesn't get set.
Setting aside QTDIR which seems to ignore the new fid->mode entirely,
the rest of these either should be subject to the same cache rules as
every other QTFILE or perhaps very explicitly not cached in the case of
QTAUTH.
Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/9p/fid.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/fs/9p/fid.h b/fs/9p/fid.h
index 29281b7c38870..0d6138bee2a3d 100644
--- a/fs/9p/fid.h
+++ b/fs/9p/fid.h
@@ -49,9 +49,6 @@ static inline struct p9_fid *v9fs_fid_clone(struct dentry *dentry)
static inline void v9fs_fid_add_modes(struct p9_fid *fid, unsigned int s_flags,
unsigned int s_cache, unsigned int f_flags)
{
- if (fid->qid.type != P9_QTFILE)
- return;
-
if ((!s_cache) ||
((fid->qid.version == 0) && !(s_flags & V9FS_IGNORE_QV)) ||
(s_flags & V9FS_DIRECT_IO) || (f_flags & O_DIRECT)) {
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 6.8 04/18] 9p: explicitly deny setlease attempts
2024-04-23 11:00 [PATCH AUTOSEL 6.8 01/18] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
2024-04-23 11:00 ` [PATCH AUTOSEL 6.8 02/18] fs/9p: translate O_TRUNC into OTRUNC Sasha Levin
2024-04-23 11:00 ` [PATCH AUTOSEL 6.8 03/18] fs/9p: fix the cache always being enabled on files with qid flags Sasha Levin
@ 2024-04-23 11:01 ` Sasha Levin
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 09/18] fs/9p: remove erroneous nlink init from legacy stat2inode Sasha Levin
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 10/18] fs/9p: drop inodes immediately on non-.L too Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2024-04-23 11:01 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Jeff Layton, Eric Van Hensbergen, Sasha Levin, lucho, asmadeus,
v9fs
From: Jeff Layton <jlayton@kernel.org>
[ Upstream commit 7a84602297d36617dbdadeba55a2567031e5165b ]
9p is a remote network protocol, and it doesn't support asynchronous
notifications from the server. Ensure that we don't hand out any leases
since we can't guarantee they'll be broken when a file's contents
change.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/9p/vfs_file.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index bae330c2f0cf0..a504240c818c8 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -520,6 +520,7 @@ const struct file_operations v9fs_file_operations = {
.splice_read = v9fs_file_splice_read,
.splice_write = iter_file_splice_write,
.fsync = v9fs_file_fsync,
+ .setlease = simple_nosetlease,
};
const struct file_operations v9fs_file_operations_dotl = {
@@ -534,4 +535,5 @@ const struct file_operations v9fs_file_operations_dotl = {
.splice_read = v9fs_file_splice_read,
.splice_write = iter_file_splice_write,
.fsync = v9fs_file_fsync_dotl,
+ .setlease = simple_nosetlease,
};
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 6.8 09/18] fs/9p: remove erroneous nlink init from legacy stat2inode
2024-04-23 11:00 [PATCH AUTOSEL 6.8 01/18] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
` (2 preceding siblings ...)
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 04/18] 9p: explicitly deny setlease attempts Sasha Levin
@ 2024-04-23 11:01 ` Sasha Levin
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 10/18] fs/9p: drop inodes immediately on non-.L too Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2024-04-23 11:01 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Eric Van Hensbergen, Sasha Levin, lucho, asmadeus, v9fs
From: Eric Van Hensbergen <ericvh@kernel.org>
[ Upstream commit 6e45a30fe5e7cf5d42ac07262a3d97644f23dc68 ]
In 9p2000 legacy mode, stat2inode initializes nlink to 1,
which is redundant with what alloc_inode should have already set.
9p2000.u overrides this with extensions if present in the stat
structure, and 9p2000.L incorporates nlink into its stat structure.
At the very least this probably messes with directory nlink
accounting in legacy mode.
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/9p/vfs_inode.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index ffb76ec3cd9b3..fa185e50d0fd3 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -1148,8 +1148,6 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode,
struct v9fs_session_info *v9ses = sb->s_fs_info;
struct v9fs_inode *v9inode = V9FS_I(inode);
- set_nlink(inode, 1);
-
inode_set_atime(inode, stat->atime, 0);
inode_set_mtime(inode, stat->mtime, 0);
inode_set_ctime(inode, stat->mtime, 0);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 6.8 10/18] fs/9p: drop inodes immediately on non-.L too
2024-04-23 11:00 [PATCH AUTOSEL 6.8 01/18] fs/9p: only translate RWX permissions for plain 9P2000 Sasha Levin
` (3 preceding siblings ...)
2024-04-23 11:01 ` [PATCH AUTOSEL 6.8 09/18] fs/9p: remove erroneous nlink init from legacy stat2inode Sasha Levin
@ 2024-04-23 11:01 ` Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2024-04-23 11:01 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Joakim Sindholt, Eric Van Hensbergen, Sasha Levin, lucho,
asmadeus, v9fs
From: Joakim Sindholt <opensource@zhasha.com>
[ Upstream commit 7fd524b9bd1be210fe79035800f4bd78a41b349f ]
Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/9p/vfs_super.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 941f7d0e0bfa2..23cc67f29af20 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -310,6 +310,7 @@ static const struct super_operations v9fs_super_ops = {
.alloc_inode = v9fs_alloc_inode,
.free_inode = v9fs_free_inode,
.statfs = simple_statfs,
+ .drop_inode = v9fs_drop_inode,
.evict_inode = v9fs_evict_inode,
.show_options = v9fs_show_options,
.umount_begin = v9fs_umount_begin,
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread