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>
This commit is contained in:
@@ -70,9 +70,13 @@ struct autofs_info {
|
||||
};
|
||||
|
||||
#define AUTOFS_INF_EXPIRING (1<<0) /* dentry in the process of expiring */
|
||||
#define AUTOFS_INF_NO_RCU (1<<1) /* the dentry is being considered
|
||||
#define AUTOFS_INF_WANT_EXPIRE (1<<1) /* the dentry is being considered
|
||||
* for expiry, so RCU_walk is
|
||||
* not permitted
|
||||
* not permitted. If it progresses to
|
||||
* actual expiry attempt, the flag is
|
||||
* not cleared when EXPIRING is set -
|
||||
* in that case it gets cleared only
|
||||
* when it comes to clearing EXPIRING.
|
||||
*/
|
||||
#define AUTOFS_INF_PENDING (1<<2) /* dentry pending mount */
|
||||
|
||||
|
Reference in New Issue
Block a user