diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-06-12 11:24:46 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-06-12 11:24:46 -0400 |
commit | ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294 (patch) | |
tree | 58b50373b64652941796b5b7e03416dd632f4ef8 /fs/autofs4/root.c | |
parent | ba65dc5ef16f82fba77869cecf7a7d515f61446b (diff) | |
download | op-kernel-dev-ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294.zip op-kernel-dev-ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294.tar.gz |
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 'fs/autofs4/root.c')
-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 78bd802..3767f66 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; |