FAILED: patch "[PATCH] afs: Fix afs_d_validate() to set the right directory version" failed to apply to 4.19-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 40fc81027f892284ce31f8b6de1e497f5b47e71f Mon Sep 17 00:00:00 2001
From: David Howells <[email protected]>
Date: Sat, 11 Apr 2020 08:50:45 +0100
Subject: [PATCH] afs: Fix afs_d_validate() to set the right directory version
If a dentry's version is somewhere between invalid_before and the current directory version, we should be setting it forward to the current version, not backwards to the invalid_before version. Note that we're only doing this at all because dentry::d_fsdata isn't large enough on a 32-bit system.
Fix this by using a separate variable for invalid_before so that we don't accidentally clobber the current dir version.
fs/afs/dir.c +3 -3
@@ -1032,7 +1032,7 @@ static int afs_d_revalidate(struct dentry *dentry, unsigned int flags)struct dentry *parent;struct inode *inode;struct key *key; -afs_dataversion_t dir_version; +afs_dataversion_t dir_version, invalid_before;long de_version;int ret;
@@ -1084,8 +1084,8 @@ static int afs_d_revalidate(struct dentry *dentry, unsigned int flags)if (de_version == (long )dir_version) goto out_valid_noupdate; - dir_version = dir->invalid_before; -if (de_version - (long )dir_version >=0 ) + invalid_before = dir->invalid_before; +if (de_version - (long )invalid_before >=0 ) goto out_valid;_debug ("dir modified" );