/ 2004-08-03 21:54:17 +0200 \ Michel Messerschmidt:
On Tue, Aug 03, 2004 at 08:57:24PM +0200, Thomas Gaertner wrote:
Seems to be a hashing problem in inode allocation procedure.
Actually it seems to be a problem with the r5 hash method. All string pairs mentioned in previous posts produce hash collisions in the function "r5_hash" in /usr/src/linux/fs/reiserfs/hashes.c I could only check this against kernel-source-2.6.4-0 (and kernel-source-2.4.21-231, although it had no effect on the filesystem there) but according to http://www.linuxhq.com/kernel/file/fs/reiserfs/hashes.c there were no further changes.
BTW, the first 2 characters of each filename are sufficient to produce a collision.
with other hash functions, the same problem will persist, though most likely with different collision strings. since the issue occurs only in the root of the reiserfs, it is likely related to the "hidden" .reiserfs_priv directory, which is the one thing that makes the root of the fs special (the other is that its parent belongs to a different superblock...). I'd investigated myself, but I'm in block devices, not a fs guy :) anyways, from a like three liner patch in the suse internal bugzilla, I guess they already tracked it down to some xattr patch related thingy, so it is likely to be in the next suse kernel update, though Roman suggested otherwise. Seems to be resolved, but needs to be confirmed, and possible further implications investigated (can you think of any?). cheers, Lars Ellenberg