Re: [PATCH 5/8] f2fs: Handle casefolding with Encryption

From: kbuild test robot
Date: Wed Dec 04 2019 - 20:22:34 EST


Hi Daniel,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on next-20191202 next-20191204]
[cannot apply to ext4/dev f2fs/dev-test v5.4 v5.4-rc8 v5.4-rc7 v5.4]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Daniel-Rosenberg/Support-for-Casefolding-and-Encryption/20191203-131410
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 76bb8b05960c3d1668e6bee7624ed886cbd135ba
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-91-g817270f-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

>> fs/f2fs/dir.c:205:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected int len @@ got restricted __le16 [usertyint len @@
>> fs/f2fs/dir.c:205:13: sparse: expected int len
fs/f2fs/dir.c:205:13: sparse: got restricted __le16 [usertype] name_len
--
>> fs/f2fs/hash.c:90:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] f2fs_hash @@ got __le32 [usertype] f2fs_hash @@
>> fs/f2fs/hash.c:90:27: sparse: expected restricted __le32 [usertype] f2fs_hash
>> fs/f2fs/hash.c:90:27: sparse: got unsigned long long
fs/f2fs/hash.c:133:24: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __le32 @@ got e32 @@
fs/f2fs/hash.c:133:24: sparse: expected restricted __le32
fs/f2fs/hash.c:133:24: sparse: got int
fs/f2fs/hash.c:141:11: sparse: sparse: incorrect type in assignment (different base types) @@ expected int r @@ got restricted __int r @@
fs/f2fs/hash.c:141:11: sparse: expected int r
fs/f2fs/hash.c:141:11: sparse: got restricted __le32
fs/f2fs/hash.c:144:16: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __le32 @@ got le32 @@
fs/f2fs/hash.c:144:16: sparse: expected restricted __le32
fs/f2fs/hash.c:144:16: sparse: got int r

vim +205 fs/f2fs/dir.c

199
200 if (de->hash_code != namehash)
201 return false;
202
203 #ifdef CONFIG_UNICODE
204 name = d->filename[bit_pos];
> 205 len = de->name_len;
206
207 if (sb->s_encoding && needs_casefold(parent)) {
208 if (cf_str->name) {
209 struct qstr cf = {.name = cf_str->name,
210 .len = cf_str->len};
211 return !f2fs_ci_compare(parent, &cf, name, len, true);
212 }
213 return !f2fs_ci_compare(parent, fname->usr_fname, name, len,
214 false);
215 }
216 #endif
217 if (fscrypt_match_name(fname, d->filename[bit_pos],
218 le16_to_cpu(de->name_len)))
219 return true;
220 return false;
221 }
222

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation