From 52dceb8d7e59316e223ca8386c1abf77f7d2d151 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Fri, 14 Dec 2012 10:23:29 +0800 Subject: [PATCH] --- yaml --- r: 343605 b: refs/heads/master c: 0259cb02c4004d3088b0999799f8f5c8801f6b97 h: refs/heads/master i: 343603: 854094f655e9171d2207999b9a93bd57611d84e5 v: v3 --- [refs] | 2 +- trunk/fs/autofs4/root.c | 22 +++++----------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index d743d1786f7e..63cf4734bd3d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f55fb0c24386cee8b78f60d60186716bd0909493 +refs/heads/master: 0259cb02c4004d3088b0999799f8f5c8801f6b97 diff --git a/trunk/fs/autofs4/root.c b/trunk/fs/autofs4/root.c index 30a6ab66e99a..c93447604da8 100644 --- a/trunk/fs/autofs4/root.c +++ b/trunk/fs/autofs4/root.c @@ -124,13 +124,10 @@ static int autofs4_dir_open(struct inode *inode, struct file *file) * it. */ spin_lock(&sbi->lookup_lock); - spin_lock(&dentry->d_lock); - if (!d_mountpoint(dentry) && list_empty(&dentry->d_subdirs)) { - spin_unlock(&dentry->d_lock); + if (!d_mountpoint(dentry) && simple_empty(dentry)) { spin_unlock(&sbi->lookup_lock); return -ENOENT; } - spin_unlock(&dentry->d_lock); spin_unlock(&sbi->lookup_lock); out: @@ -386,12 +383,8 @@ static struct vfsmount *autofs4_d_automount(struct path *path) goto done; } } else { - spin_lock(&dentry->d_lock); - if (!list_empty(&dentry->d_subdirs)) { - spin_unlock(&dentry->d_lock); + if (!simple_empty(dentry)) goto done; - } - spin_unlock(&dentry->d_lock); } ino->flags |= AUTOFS_INF_PENDING; spin_unlock(&sbi->fs_lock); @@ -610,9 +603,7 @@ static int autofs4_dir_unlink(struct inode *dir, struct dentry *dentry) spin_lock(&sbi->lookup_lock); __autofs4_add_expiring(dentry); - spin_lock(&dentry->d_lock); - __d_drop(dentry); - spin_unlock(&dentry->d_lock); + d_drop(dentry); spin_unlock(&sbi->lookup_lock); return 0; @@ -683,15 +674,12 @@ static int autofs4_dir_rmdir(struct inode *dir, struct dentry *dentry) return -EACCES; spin_lock(&sbi->lookup_lock); - spin_lock(&dentry->d_lock); - if (!list_empty(&dentry->d_subdirs)) { - spin_unlock(&dentry->d_lock); + if (!simple_empty(dentry)) { spin_unlock(&sbi->lookup_lock); return -ENOTEMPTY; } __autofs4_add_expiring(dentry); - __d_drop(dentry); - spin_unlock(&dentry->d_lock); + d_drop(dentry); spin_unlock(&sbi->lookup_lock); if (sbi->version < 5)