Commit 3010f06c authored by Al Viro's avatar Al Viro
Browse files

shmem_whiteout(): fix regression from tree-in-dcache series



Now that shmem_mknod() hashes the new dentry, d_rehash() in
shmem_whiteout() should be removed.

X-paperbag: brown
Reported-by: default avatarHugh Dickins <hughd@google.com>
Acked-by: default avatarHugh Dickins <hughd@google.com>
Tested-by: default avatarHugh Dickins <hughd@google.com>
Fixes: 23135982 ("convert ramfs and tmpfs")
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 0048fbb4
Loading
Loading
Loading
Loading
+1 −13
Original line number Diff line number Diff line
@@ -4019,22 +4019,10 @@ static int shmem_whiteout(struct mnt_idmap *idmap,
	whiteout = d_alloc(old_dentry->d_parent, &old_dentry->d_name);
	if (!whiteout)
		return -ENOMEM;

	error = shmem_mknod(idmap, old_dir, whiteout,
			    S_IFCHR | WHITEOUT_MODE, WHITEOUT_DEV);
	dput(whiteout);
	if (error)
	return error;

	/*
	 * Cheat and hash the whiteout while the old dentry is still in
	 * place, instead of playing games with FS_RENAME_DOES_D_MOVE.
	 *
	 * d_lookup() will consistently find one of them at this point,
	 * not sure which one, but that isn't even important.
	 */
	d_rehash(whiteout);
	return 0;
}

/*