f2fs: fix a bug when using namehash to locate dentry bucket
In the following scenario, 1) we don't have the key and doing a lookup for encrypted file, 2) and the encrypted filename is big name we should use fname->hash as name hash value instead of what is calculated by fname->disk_name. Because in such case, fname->disk_name is empty. Signed-off-by: Shuoran Liu <liushuoran@huawei.com> Acked-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
dfd02e4de1
commit
5d2b42ede7
|
@ -172,7 +172,10 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
|
||||||
int max_slots;
|
int max_slots;
|
||||||
f2fs_hash_t namehash;
|
f2fs_hash_t namehash;
|
||||||
|
|
||||||
namehash = f2fs_dentry_hash(&name);
|
if(fname->hash)
|
||||||
|
namehash = cpu_to_le32(fname->hash);
|
||||||
|
else
|
||||||
|
namehash = f2fs_dentry_hash(&name);
|
||||||
|
|
||||||
nbucket = dir_buckets(level, F2FS_I(dir)->i_dir_level);
|
nbucket = dir_buckets(level, F2FS_I(dir)->i_dir_level);
|
||||||
nblock = bucket_blocks(level);
|
nblock = bucket_blocks(level);
|
||||||
|
|
Loading…
Reference in New Issue