diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-06-12 17:24:46 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-06-12 17:24:46 +0200 |
commit | ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294 (patch) | |
tree | 58b50373b64652941796b5b7e03416dd632f4ef8 /fs/autofs4/root.c | |
parent | much milder d_walk() race (diff) | |
download | linux-ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294.tar.xz linux-ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294.zip |
autofs races
* make autofs4_expire_indirect() skip the dentries being in process of
expiry
* do *not* mess with list_move(); making sure that dentry with
AUTOFS_INF_EXPIRING are not picked for expiry is enough.
* do not remove NO_RCU when we set EXPIRING, don't bother with smp_mb()
there. Clear it at the same time we clear EXPIRING. Makes a bunch of
tests simpler.
* rename NO_RCU to WANT_EXPIRE, which is what it really is.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to '')
-rw-r--r-- | fs/autofs4/root.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index 78bd80298528..3767f6641af1 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c @@ -458,7 +458,7 @@ static int autofs4_d_manage(struct dentry *dentry, bool rcu_walk) */ struct inode *inode; - if (ino->flags & (AUTOFS_INF_EXPIRING | AUTOFS_INF_NO_RCU)) + if (ino->flags & AUTOFS_INF_WANT_EXPIRE) return 0; if (d_mountpoint(dentry)) return 0; |