--- x/fs/namei.c +++ y/fs/namei.c @@ -4198,6 +4198,8 @@ int vfs_rmdir(struct mnt_idmap *idmap, s if (!dir->i_op->rmdir) return -EPERM; + if (dir == dentry->d_inode) + return -EDEADLK; dget(dentry); inode_lock(dentry->d_inode);