Hi Tetsuhiro,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.9-rc5 next-20200917]
[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/Tetsuhiro-Kohada/exfat-add-exfat...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
10b82d5176488acee2820e5a2cf0f2ec5c3488b6
config: x86_64-randconfig-s022-20200917 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-201-g24bdaac6-dirty
# 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(a)intel.com>
sparse warnings: (new ones prefixed by >>)
> fs/exfat/inode.c:78:38: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] start_clu
@@ got unsigned int @@
> fs/exfat/inode.c:78:38: sparse: expected restricted __le32 [usertype] start_clu
> fs/exfat/inode.c:78:38: sparse: got unsigned int
#
https://github.com/0day-ci/linux/commit/605a79d44870ed9f396b6d5289fd1cece...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Tetsuhiro-Kohada/exfat-add-exfat_update_inode/20200918-103524
git checkout 605a79d44870ed9f396b6d5289fd1cecea3af8e3
vim +78 fs/exfat/inode.c
19
20 static int __exfat_write_inode(struct inode *inode, int sync)
21 {
22 unsigned long long filesize;
23 struct exfat_dentry *ep, *ep2;
24 struct exfat_entry_set_cache *es = NULL;
25 struct super_block *sb = inode->i_sb;
26 struct exfat_sb_info *sbi = EXFAT_SB(sb);
27 struct exfat_inode_info *ei = EXFAT_I(inode);
28 bool is_dir = (ei->type == TYPE_DIR) ? true : false;
29
30 if (inode->i_ino == EXFAT_ROOT_INO)
31 return 0;
32
33 /*
34 * If the indode is already unlinked, there is no need for updating it.
35 */
36 if (ei->dir.dir == DIR_DELETED)
37 return 0;
38
39 if (is_dir && ei->dir.dir == sbi->root_dir && ei->entry
== -1)
40 return 0;
41
42 exfat_set_volume_dirty(sb);
43
44 /* get the directory entry of given file or directory */
45 es = exfat_get_dentry_set(sb, &(ei->dir), ei->entry, ES_ALL_ENTRIES);
46 if (!es)
47 return -EIO;
48 ep = exfat_get_dentry_cached(es, 0);
49 ep2 = exfat_get_dentry_cached(es, 1);
50
51 ep->dentry.file.attr = cpu_to_le16(exfat_make_attr(inode));
52
53 /* set FILE_INFO structure using the acquired struct exfat_dentry */
54 exfat_set_entry_time(sbi, &ei->i_crtime,
55 &ep->dentry.file.create_tz,
56 &ep->dentry.file.create_time,
57 &ep->dentry.file.create_date,
58 &ep->dentry.file.create_time_cs);
59 exfat_set_entry_time(sbi, &inode->i_mtime,
60 &ep->dentry.file.modify_tz,
61 &ep->dentry.file.modify_time,
62 &ep->dentry.file.modify_date,
63 &ep->dentry.file.modify_time_cs);
64 exfat_set_entry_time(sbi, &inode->i_atime,
65 &ep->dentry.file.access_tz,
66 &ep->dentry.file.access_time,
67 &ep->dentry.file.access_date,
68 NULL);
69
70 /* File size should be zero if there is no cluster allocated */
71 filesize = i_size_read(inode);
72 if (ei->start_clu == EXFAT_EOF_CLUSTER)
73 filesize = 0;
74
75 ep2->dentry.stream.valid_size = cpu_to_le64(filesize);
76 ep2->dentry.stream.size = ep2->dentry.stream.valid_size;
77 ep2->dentry.stream.flags = filesize ? ei->flags : ALLOC_FAT_CHAIN;
78 ep2->dentry.stream.start_clu = filesize ? ei->start_clu :
EXFAT_FREE_CLUSTER;
79
80 exfat_update_dir_chksum_with_entry_set(es);
81 return exfat_free_dentry_set(es, sync);
82 }
83
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org