btrfs: fix invalid extref key setup when replaying dentry

The offset for an extref item's key is not the object ID of the parent
dir, otherwise we would not need the extref item and would use plain ref
items. Instead the offset is the result of a hash computation that uses
the object ID of the parent dir and the name associated to the entry.
So fix this by setting the key offset at replay_one_name() to be the
result of calling btrfs_extref_hash().

Fixes: 725af92a6251 ("btrfs: Open-code name_in_log_ref in replay_one_name")
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

authored by Filipe Manana and committed by David Sterba b62fd63a 3d126747

+1 -1
+1 -1
fs/btrfs/tree-log.c
··· 1964 1965 search_key.objectid = log_key.objectid; 1966 search_key.type = BTRFS_INODE_EXTREF_KEY; 1967 - search_key.offset = key->objectid; 1968 ret = backref_in_log(root->log_root, &search_key, key->objectid, &name); 1969 if (ret < 0) { 1970 goto out;
··· 1964 1965 search_key.objectid = log_key.objectid; 1966 search_key.type = BTRFS_INODE_EXTREF_KEY; 1967 + search_key.offset = btrfs_extref_hash(key->objectid, name.name, name.len); 1968 ret = backref_in_log(root->log_root, &search_key, key->objectid, &name); 1969 if (ret < 0) { 1970 goto out;