fs/9p: fix the cache always being enabled on files with qid flags
authorJoakim Sindholt <opensource@zhasha.com>
Mon, 18 Mar 2024 11:22:34 +0000 (12:22 +0100)
committerEric Van Hensbergen <ericvh@kernel.org>
Thu, 28 Mar 2024 15:10:29 +0000 (15:10 +0000)
commit4e5d208cc9bd5fbc95d536fa223b4b14c37b8ca8
treed95a157f1b42fbf54e108e727a0e2ce1a4f1f846
parent87de39e70503e04ddb58965520b15eb9efa7eef3
fs/9p: fix the cache always being enabled on files with qid flags

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>
fs/9p/fid.h