From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] f2fs: compress: support chksum
Date: Tue, 03 Nov 2020 01:37:58 +0800 [thread overview]
Message-ID: <202011030144.J918aF7w-lkp@intel.com> (raw)
In-Reply-To: <20201102122333.76667-1-yuchao0@huawei.com>
[-- Attachment #1: Type: text/plain, Size: 7783 bytes --]
Hi Chao,
I love your patch! Perhaps something to improve:
[auto build test WARNING on f2fs/dev-test]
[also build test WARNING on v5.10-rc2 next-20201102]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Chao-Yu/f2fs-compress-support-chksum/20201102-202700
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-s022-20201102 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-56-gc09e8239-dirty
# https://github.com/0day-ci/linux/commit/0216dd41faf31554616bde7437532abd1dc18fbb
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-compress-support-chksum/20201102-202700
git checkout 0216dd41faf31554616bde7437532abd1dc18fbb
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
>> fs/f2fs/inode.c:459:45: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short i_compress_flag @@ got restricted __le16 [usertype] i_compress_flag @@
>> fs/f2fs/inode.c:459:45: sparse: expected unsigned short i_compress_flag
>> fs/f2fs/inode.c:459:45: sparse: got restricted __le16 [usertype] i_compress_flag
vim +459 fs/f2fs/inode.c
332
333 static int do_read_inode(struct inode *inode)
334 {
335 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
336 struct f2fs_inode_info *fi = F2FS_I(inode);
337 struct page *node_page;
338 struct f2fs_inode *ri;
339 projid_t i_projid;
340 int err;
341
342 /* Check if ino is within scope */
343 if (f2fs_check_nid_range(sbi, inode->i_ino))
344 return -EINVAL;
345
346 node_page = f2fs_get_node_page(sbi, inode->i_ino);
347 if (IS_ERR(node_page))
348 return PTR_ERR(node_page);
349
350 ri = F2FS_INODE(node_page);
351
352 inode->i_mode = le16_to_cpu(ri->i_mode);
353 i_uid_write(inode, le32_to_cpu(ri->i_uid));
354 i_gid_write(inode, le32_to_cpu(ri->i_gid));
355 set_nlink(inode, le32_to_cpu(ri->i_links));
356 inode->i_size = le64_to_cpu(ri->i_size);
357 inode->i_blocks = SECTOR_FROM_BLOCK(le64_to_cpu(ri->i_blocks) - 1);
358
359 inode->i_atime.tv_sec = le64_to_cpu(ri->i_atime);
360 inode->i_ctime.tv_sec = le64_to_cpu(ri->i_ctime);
361 inode->i_mtime.tv_sec = le64_to_cpu(ri->i_mtime);
362 inode->i_atime.tv_nsec = le32_to_cpu(ri->i_atime_nsec);
363 inode->i_ctime.tv_nsec = le32_to_cpu(ri->i_ctime_nsec);
364 inode->i_mtime.tv_nsec = le32_to_cpu(ri->i_mtime_nsec);
365 inode->i_generation = le32_to_cpu(ri->i_generation);
366 if (S_ISDIR(inode->i_mode))
367 fi->i_current_depth = le32_to_cpu(ri->i_current_depth);
368 else if (S_ISREG(inode->i_mode))
369 fi->i_gc_failures[GC_FAILURE_PIN] =
370 le16_to_cpu(ri->i_gc_failures);
371 fi->i_xattr_nid = le32_to_cpu(ri->i_xattr_nid);
372 fi->i_flags = le32_to_cpu(ri->i_flags);
373 if (S_ISREG(inode->i_mode))
374 fi->i_flags &= ~F2FS_PROJINHERIT_FL;
375 bitmap_zero(fi->flags, FI_MAX);
376 fi->i_advise = ri->i_advise;
377 fi->i_pino = le32_to_cpu(ri->i_pino);
378 fi->i_dir_level = ri->i_dir_level;
379
380 f2fs_init_extent_tree(inode, node_page);
381
382 get_inline_info(inode, ri);
383
384 fi->i_extra_isize = f2fs_has_extra_attr(inode) ?
385 le16_to_cpu(ri->i_extra_isize) : 0;
386
387 if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
388 fi->i_inline_xattr_size = le16_to_cpu(ri->i_inline_xattr_size);
389 } else if (f2fs_has_inline_xattr(inode) ||
390 f2fs_has_inline_dentry(inode)) {
391 fi->i_inline_xattr_size = DEFAULT_INLINE_XATTR_ADDRS;
392 } else {
393
394 /*
395 * Previous inline data or directory always reserved 200 bytes
396 * in inode layout, even if inline_xattr is disabled. In order
397 * to keep inline_dentry's structure for backward compatibility,
398 * we get the space back only from inline_data.
399 */
400 fi->i_inline_xattr_size = 0;
401 }
402
403 if (!sanity_check_inode(inode, node_page)) {
404 f2fs_put_page(node_page, 1);
405 return -EFSCORRUPTED;
406 }
407
408 /* check data exist */
409 if (f2fs_has_inline_data(inode) && !f2fs_exist_data(inode))
410 __recover_inline_status(inode, node_page);
411
412 /* try to recover cold bit for non-dir inode */
413 if (!S_ISDIR(inode->i_mode) && !is_cold_node(node_page)) {
414 f2fs_wait_on_page_writeback(node_page, NODE, true, true);
415 set_cold_node(node_page, false);
416 set_page_dirty(node_page);
417 }
418
419 /* get rdev by using inline_info */
420 __get_inode_rdev(inode, ri);
421
422 if (S_ISREG(inode->i_mode)) {
423 err = __written_first_block(sbi, ri);
424 if (err < 0) {
425 f2fs_put_page(node_page, 1);
426 return err;
427 }
428 if (!err)
429 set_inode_flag(inode, FI_FIRST_BLOCK_WRITTEN);
430 }
431
432 if (!f2fs_need_inode_block_update(sbi, inode->i_ino))
433 fi->last_disk_size = inode->i_size;
434
435 if (fi->i_flags & F2FS_PROJINHERIT_FL)
436 set_inode_flag(inode, FI_PROJ_INHERIT);
437
438 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_project_quota(sbi) &&
439 F2FS_FITS_IN_INODE(ri, fi->i_extra_isize, i_projid))
440 i_projid = (projid_t)le32_to_cpu(ri->i_projid);
441 else
442 i_projid = F2FS_DEF_PROJID;
443 fi->i_projid = make_kprojid(&init_user_ns, i_projid);
444
445 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_inode_crtime(sbi) &&
446 F2FS_FITS_IN_INODE(ri, fi->i_extra_isize, i_crtime)) {
447 fi->i_crtime.tv_sec = le64_to_cpu(ri->i_crtime);
448 fi->i_crtime.tv_nsec = le32_to_cpu(ri->i_crtime_nsec);
449 }
450
451 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_compression(sbi) &&
452 (fi->i_flags & F2FS_COMPR_FL)) {
453 if (F2FS_FITS_IN_INODE(ri, fi->i_extra_isize,
454 i_log_cluster_size)) {
455 atomic_set(&fi->i_compr_blocks,
456 le64_to_cpu(ri->i_compr_blocks));
457 fi->i_compress_algorithm = ri->i_compress_algorithm;
458 fi->i_log_cluster_size = ri->i_log_cluster_size;
> 459 fi->i_compress_flag = ri->i_compress_flag;
460 fi->i_cluster_size = 1 << fi->i_log_cluster_size;
461 set_inode_flag(inode, FI_COMPRESSED_FILE);
462 }
463 }
464
465 F2FS_I(inode)->i_disk_time[0] = inode->i_atime;
466 F2FS_I(inode)->i_disk_time[1] = inode->i_ctime;
467 F2FS_I(inode)->i_disk_time[2] = inode->i_mtime;
468 F2FS_I(inode)->i_disk_time[3] = F2FS_I(inode)->i_crtime;
469 f2fs_put_page(node_page, 1);
470
471 stat_inc_inline_xattr(inode);
472 stat_inc_inline_inode(inode);
473 stat_inc_inline_dir(inode);
474 stat_inc_compr_inode(inode);
475 stat_add_compr_blocks(inode, atomic_read(&fi->i_compr_blocks));
476
477 return 0;
478 }
479
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30023 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Chao Yu <yuchao0@huawei.com>, Chao Yu <chao@kernel.org>,
jaegeuk@kernel.org
Cc: kbuild-all@lists.01.org, linux-f2fs-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org, chao@kernel.org,
Chao Yu <yuchao0@huawei.com>
Subject: Re: [PATCH] f2fs: compress: support chksum
Date: Tue, 3 Nov 2020 01:37:58 +0800 [thread overview]
Message-ID: <202011030144.J918aF7w-lkp@intel.com> (raw)
In-Reply-To: <20201102122333.76667-1-yuchao0@huawei.com>
[-- Attachment #1: Type: text/plain, Size: 7594 bytes --]
Hi Chao,
I love your patch! Perhaps something to improve:
[auto build test WARNING on f2fs/dev-test]
[also build test WARNING on v5.10-rc2 next-20201102]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Chao-Yu/f2fs-compress-support-chksum/20201102-202700
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-s022-20201102 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-56-gc09e8239-dirty
# https://github.com/0day-ci/linux/commit/0216dd41faf31554616bde7437532abd1dc18fbb
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-compress-support-chksum/20201102-202700
git checkout 0216dd41faf31554616bde7437532abd1dc18fbb
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
>> fs/f2fs/inode.c:459:45: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short i_compress_flag @@ got restricted __le16 [usertype] i_compress_flag @@
>> fs/f2fs/inode.c:459:45: sparse: expected unsigned short i_compress_flag
>> fs/f2fs/inode.c:459:45: sparse: got restricted __le16 [usertype] i_compress_flag
vim +459 fs/f2fs/inode.c
332
333 static int do_read_inode(struct inode *inode)
334 {
335 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
336 struct f2fs_inode_info *fi = F2FS_I(inode);
337 struct page *node_page;
338 struct f2fs_inode *ri;
339 projid_t i_projid;
340 int err;
341
342 /* Check if ino is within scope */
343 if (f2fs_check_nid_range(sbi, inode->i_ino))
344 return -EINVAL;
345
346 node_page = f2fs_get_node_page(sbi, inode->i_ino);
347 if (IS_ERR(node_page))
348 return PTR_ERR(node_page);
349
350 ri = F2FS_INODE(node_page);
351
352 inode->i_mode = le16_to_cpu(ri->i_mode);
353 i_uid_write(inode, le32_to_cpu(ri->i_uid));
354 i_gid_write(inode, le32_to_cpu(ri->i_gid));
355 set_nlink(inode, le32_to_cpu(ri->i_links));
356 inode->i_size = le64_to_cpu(ri->i_size);
357 inode->i_blocks = SECTOR_FROM_BLOCK(le64_to_cpu(ri->i_blocks) - 1);
358
359 inode->i_atime.tv_sec = le64_to_cpu(ri->i_atime);
360 inode->i_ctime.tv_sec = le64_to_cpu(ri->i_ctime);
361 inode->i_mtime.tv_sec = le64_to_cpu(ri->i_mtime);
362 inode->i_atime.tv_nsec = le32_to_cpu(ri->i_atime_nsec);
363 inode->i_ctime.tv_nsec = le32_to_cpu(ri->i_ctime_nsec);
364 inode->i_mtime.tv_nsec = le32_to_cpu(ri->i_mtime_nsec);
365 inode->i_generation = le32_to_cpu(ri->i_generation);
366 if (S_ISDIR(inode->i_mode))
367 fi->i_current_depth = le32_to_cpu(ri->i_current_depth);
368 else if (S_ISREG(inode->i_mode))
369 fi->i_gc_failures[GC_FAILURE_PIN] =
370 le16_to_cpu(ri->i_gc_failures);
371 fi->i_xattr_nid = le32_to_cpu(ri->i_xattr_nid);
372 fi->i_flags = le32_to_cpu(ri->i_flags);
373 if (S_ISREG(inode->i_mode))
374 fi->i_flags &= ~F2FS_PROJINHERIT_FL;
375 bitmap_zero(fi->flags, FI_MAX);
376 fi->i_advise = ri->i_advise;
377 fi->i_pino = le32_to_cpu(ri->i_pino);
378 fi->i_dir_level = ri->i_dir_level;
379
380 f2fs_init_extent_tree(inode, node_page);
381
382 get_inline_info(inode, ri);
383
384 fi->i_extra_isize = f2fs_has_extra_attr(inode) ?
385 le16_to_cpu(ri->i_extra_isize) : 0;
386
387 if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
388 fi->i_inline_xattr_size = le16_to_cpu(ri->i_inline_xattr_size);
389 } else if (f2fs_has_inline_xattr(inode) ||
390 f2fs_has_inline_dentry(inode)) {
391 fi->i_inline_xattr_size = DEFAULT_INLINE_XATTR_ADDRS;
392 } else {
393
394 /*
395 * Previous inline data or directory always reserved 200 bytes
396 * in inode layout, even if inline_xattr is disabled. In order
397 * to keep inline_dentry's structure for backward compatibility,
398 * we get the space back only from inline_data.
399 */
400 fi->i_inline_xattr_size = 0;
401 }
402
403 if (!sanity_check_inode(inode, node_page)) {
404 f2fs_put_page(node_page, 1);
405 return -EFSCORRUPTED;
406 }
407
408 /* check data exist */
409 if (f2fs_has_inline_data(inode) && !f2fs_exist_data(inode))
410 __recover_inline_status(inode, node_page);
411
412 /* try to recover cold bit for non-dir inode */
413 if (!S_ISDIR(inode->i_mode) && !is_cold_node(node_page)) {
414 f2fs_wait_on_page_writeback(node_page, NODE, true, true);
415 set_cold_node(node_page, false);
416 set_page_dirty(node_page);
417 }
418
419 /* get rdev by using inline_info */
420 __get_inode_rdev(inode, ri);
421
422 if (S_ISREG(inode->i_mode)) {
423 err = __written_first_block(sbi, ri);
424 if (err < 0) {
425 f2fs_put_page(node_page, 1);
426 return err;
427 }
428 if (!err)
429 set_inode_flag(inode, FI_FIRST_BLOCK_WRITTEN);
430 }
431
432 if (!f2fs_need_inode_block_update(sbi, inode->i_ino))
433 fi->last_disk_size = inode->i_size;
434
435 if (fi->i_flags & F2FS_PROJINHERIT_FL)
436 set_inode_flag(inode, FI_PROJ_INHERIT);
437
438 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_project_quota(sbi) &&
439 F2FS_FITS_IN_INODE(ri, fi->i_extra_isize, i_projid))
440 i_projid = (projid_t)le32_to_cpu(ri->i_projid);
441 else
442 i_projid = F2FS_DEF_PROJID;
443 fi->i_projid = make_kprojid(&init_user_ns, i_projid);
444
445 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_inode_crtime(sbi) &&
446 F2FS_FITS_IN_INODE(ri, fi->i_extra_isize, i_crtime)) {
447 fi->i_crtime.tv_sec = le64_to_cpu(ri->i_crtime);
448 fi->i_crtime.tv_nsec = le32_to_cpu(ri->i_crtime_nsec);
449 }
450
451 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_compression(sbi) &&
452 (fi->i_flags & F2FS_COMPR_FL)) {
453 if (F2FS_FITS_IN_INODE(ri, fi->i_extra_isize,
454 i_log_cluster_size)) {
455 atomic_set(&fi->i_compr_blocks,
456 le64_to_cpu(ri->i_compr_blocks));
457 fi->i_compress_algorithm = ri->i_compress_algorithm;
458 fi->i_log_cluster_size = ri->i_log_cluster_size;
> 459 fi->i_compress_flag = ri->i_compress_flag;
460 fi->i_cluster_size = 1 << fi->i_log_cluster_size;
461 set_inode_flag(inode, FI_COMPRESSED_FILE);
462 }
463 }
464
465 F2FS_I(inode)->i_disk_time[0] = inode->i_atime;
466 F2FS_I(inode)->i_disk_time[1] = inode->i_ctime;
467 F2FS_I(inode)->i_disk_time[2] = inode->i_mtime;
468 F2FS_I(inode)->i_disk_time[3] = F2FS_I(inode)->i_crtime;
469 f2fs_put_page(node_page, 1);
470
471 stat_inc_inline_xattr(inode);
472 stat_inc_inline_inode(inode);
473 stat_inc_inline_dir(inode);
474 stat_inc_compr_inode(inode);
475 stat_add_compr_blocks(inode, atomic_read(&fi->i_compr_blocks));
476
477 return 0;
478 }
479
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30023 bytes --]
next prev parent reply other threads:[~2020-11-02 17:37 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-02 12:23 [f2fs-dev] [PATCH] f2fs: compress: support chksum Chao Yu
2020-11-02 12:23 ` Chao Yu
2020-11-02 16:31 ` [f2fs-dev] " Jaegeuk Kim
2020-11-02 16:31 ` Jaegeuk Kim
2020-11-03 2:02 ` [f2fs-dev] " Chao Yu
2020-11-03 2:02 ` Chao Yu
2020-11-03 2:36 ` [f2fs-dev] " Chao Yu
2020-11-03 2:36 ` Chao Yu
2020-11-03 10:35 ` David Laight
2020-11-03 10:35 ` David Laight
2020-11-03 11:51 ` Chao Yu
2020-11-03 11:51 ` Chao Yu
2020-11-05 1:13 ` Chao Yu
2020-11-05 1:13 ` Chao Yu
2020-11-06 21:12 ` Jaegeuk Kim
2020-11-06 21:12 ` Jaegeuk Kim
2020-11-09 1:49 ` Chao Yu
2020-11-09 1:49 ` Chao Yu
2020-11-09 17:06 ` Jaegeuk Kim
2020-11-09 17:06 ` Jaegeuk Kim
2020-11-10 1:52 ` Chao Yu
2020-11-10 1:52 ` Chao Yu
2020-11-10 4:23 ` Jaegeuk Kim
2020-11-10 4:23 ` Jaegeuk Kim
2020-11-10 6:27 ` Chao Yu
2020-11-10 6:27 ` Chao Yu
2020-11-10 12:16 ` David Laight
2020-11-10 12:16 ` David Laight
2020-11-02 17:37 ` kernel test robot [this message]
2020-11-02 17:37 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202011030144.J918aF7w-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.