On 2016/8/25 20:42, Shuoran Liu wrote: > 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. Your signiture is missing here. Anyway that's a good catch! Acked-by: Chao Yu <yuchao0@xxxxxxxxxx> > --- > fs/f2fs/dir.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c > index 9054aea..b3e6f7f 100644 > --- a/fs/f2fs/dir.c > +++ b/fs/f2fs/dir.c > @@ -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); > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html