Re: [PATCH 5 2/4] Return 32/64-bit dir name hash according to usage type
From: Ted Ts'o <tytso@mit.edu>
Date: 2012-03-05 15:59:39
Also in:
linux-fsdevel, linux-nfs
From: Ted Ts'o <tytso@mit.edu>
Date: 2012-03-05 15:59:39
Also in:
linux-fsdevel, linux-nfs
On Mon, Jan 09, 2012 at 02:21:48PM +0100, Bernd Schubert wrote:
diff --git a/fs/ext4/hash.c b/fs/ext4/hash.c index ac8f168..fa8e491 100644 --- a/fs/ext4/hash.c +++ b/fs/ext4/hash.c@@ -200,8 +200,8 @@ int ext4fs_dirhash(const char *name, int len, struct dx_hash_info *hinfo) return -1; } hash = hash & ~1; - if (hash == (EXT4_HTREE_EOF << 1)) - hash = (EXT4_HTREE_EOF-1) << 1; + if (hash == (EXT4_HTREE_EOF_32BIT << 1)) + hash = (EXT4_HTREE_EOF_32BIT - 1) << 1; hinfo->hash = hash; hinfo->minor_hash = minor_hash; return 0;
Is there a reason why we don't need to avoid the collsion with the 64-bit EOF value as well? i.e., I think we also need to add: if (hash == (EXT4_HTREE_EOF_64BIT << 1)) hash = (EXT4_HTREE_EOF_64BIT - 1) << 1; - Ted