On Thu 06-06-24 13:43:16, carrion bent wrote: > the macro parameter 'entry' of EXT4_DIRENT_HASH and > EXT4_DIRENT_MINOR_HASH was not used, but rather the > variable 'de' was directly used, which may be a local > variable inside a function that calls the macros. > Fortunately, all callers have passed in 'de' so far, > so this bug didn't have an effect. > > Signed-off-by: carrion bent <carrionbent@xxxxxxxxxxxxxxxxx> Ted, this seems to have fallen through the cracks. The bug in the macro is really nasty trap... Honza > --- > fs/ext4/ext4.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index 983dad8..04bdd27 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -2338,9 +2338,9 @@ struct ext4_dir_entry_2 { > ((struct ext4_dir_entry_hash *) \ > (((void *)(entry)) + \ > ((8 + (entry)->name_len + EXT4_DIR_ROUND) & ~EXT4_DIR_ROUND))) > -#define EXT4_DIRENT_HASH(entry) le32_to_cpu(EXT4_DIRENT_HASHES(de)->hash) > +#define EXT4_DIRENT_HASH(entry) le32_to_cpu(EXT4_DIRENT_HASHES(entry)->hash) > #define EXT4_DIRENT_MINOR_HASH(entry) \ > - le32_to_cpu(EXT4_DIRENT_HASHES(de)->minor_hash) > + le32_to_cpu(EXT4_DIRENT_HASHES(entry)->minor_hash) > > static inline bool ext4_hash_in_dirent(const struct inode *inode) > { > -- > 2.7.4 > > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR