* 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:
                                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);
 
        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;
                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)