aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent-tree.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-02-01 14:51:59 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:00 -0400
commit21a4989d26d5ce43aac452fd67be592463a5996d (patch)
tree5e4c4829264dcae66917ead9625c64ef11646abe /fs/btrfs/extent-tree.c
parent47e4bb988c853d9af79d76fc5135aee9eeffed77 (diff)
Btrfs: Hash in the offset and owner for file extent backref keys
This makes searches for backrefs and backref insertion much more efficient when there are many backrefs for a single extent Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r--fs/btrfs/extent-tree.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 0fc8dfd58da9..8761aec59e37 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -397,13 +397,12 @@ static u64 hash_extent_ref(u64 root_objectid, u64 ref_generation,
397 high_crc = crc32c(high_crc, &lenum, sizeof(lenum)); 397 high_crc = crc32c(high_crc, &lenum, sizeof(lenum));
398 lenum = cpu_to_le64(ref_generation); 398 lenum = cpu_to_le64(ref_generation);
399 low_crc = crc32c(low_crc, &lenum, sizeof(lenum)); 399 low_crc = crc32c(low_crc, &lenum, sizeof(lenum));
400 400 if (owner >= BTRFS_FIRST_FREE_OBJECTID) {
401#if 0 401 lenum = cpu_to_le64(owner);
402 lenum = cpu_to_le64(owner); 402 low_crc = crc32c(low_crc, &lenum, sizeof(lenum));
403 low_crc = crc32c(low_crc, &lenum, sizeof(lenum)); 403 lenum = cpu_to_le64(owner_offset);
404 lenum = cpu_to_le64(owner_offset); 404 low_crc = crc32c(low_crc, &lenum, sizeof(lenum));
405 low_crc = crc32c(low_crc, &lenum, sizeof(lenum)); 405 }
406#endif
407 return ((u64)high_crc << 32) | (u64)low_crc; 406 return ((u64)high_crc << 32) | (u64)low_crc;
408} 407}
409 408