diff -rup reiserfsprogs-3.6.18/reiserfscore/node_formats.c reiserfsprogs-3.6.18.devel/reiserfscore/node_formats.c --- reiserfsprogs-3.6.18/reiserfscore/node_formats.c 2004-05-28 07:42:43.000000000 -0400 +++ reiserfsprogs-3.6.18.devel/reiserfscore/node_formats.c 2004-09-15 09:05:16.681478544 -0400 @@ -527,9 +527,13 @@ int known_hashes (void) } -#define good_name(hashfn,name,namelen,deh_offset) \ -(GET_HASH_VALUE ((hashfn) (name, namelen)) == GET_HASH_VALUE (deh_offset)) - +#define good_name(hashfn,name,namelen,deh_offset) \ +({ \ + __u32 __x = (GET_HASH_VALUE ((hashfn) (name, namelen))); \ + if (__x == 0) \ + __x = 128; \ + __x == GET_HASH_VALUE (deh_offset); \ +}) /* this also sets hash function */ int is_properly_hashed (reiserfs_filsys_t * fs,