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:
Родитель
dfd02e4de1
Коммит
5d2b42ede7
|
@ -172,7 +172,10 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
|
|||
int max_slots;
|
||||
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);
|
||||
nblock = bucket_blocks(level);
|
||||
|
|
Загрузка…
Ссылка в новой задаче