diff options
Diffstat (limited to 'fs/autofs4/expire.c')
-rw-r--r-- | fs/autofs4/expire.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c index 8fa3895cda02..1695eda8ac18 100644 --- a/fs/autofs4/expire.c +++ b/fs/autofs4/expire.c @@ -461,7 +461,7 @@ found: return expired; } -int autofs4_expire_wait(struct dentry *dentry) +int autofs4_expire_wait(struct dentry *dentry, int rcu_walk) { struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb); struct autofs_info *ino = autofs4_dentry_ino(dentry); @@ -471,6 +471,8 @@ int autofs4_expire_wait(struct dentry *dentry) spin_lock(&sbi->fs_lock); if (ino->flags & AUTOFS_INF_EXPIRING) { spin_unlock(&sbi->fs_lock); + if (rcu_walk) + return -ECHILD; DPRINTK("waiting for expire %p name=%.*s", dentry, dentry->d_name.len, dentry->d_name.name); |