From: kbuild test robot <lkp@intel.com>
To: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: kbuild-all@01.org, Johannes Weiner <hannes@cmpxchg.org>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: [mmotm:master 174/212] fs///fat/inode.c:163:9: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'sector_t {aka long long unsigned int}'
Date: Fri, 8 Jun 2018 09:38:56 +0800 [thread overview]
Message-ID: <201806080946.h9NeMhUX%fengguang.wu@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 5702 bytes --]
tree: git://git.cmpxchg.org/linux-mmotm.git master
head: 7393732bae530daa27567988b91d16ecfeef6c62
commit: fe3e5c4f07cde4be67152518d21429bfbb875c0c [174/212] fat: use fat_fs_error() instead of BUG_ON() in __fat_get_block()
config: i386-randconfig-s0-201822-CONFIG_DEBUG_INFO_REDUCED (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
git checkout fe3e5c4f07cde4be67152518d21429bfbb875c0c
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
In file included from fs///fat/inode.c:24:0:
fs///fat/inode.c: In function '__fat_get_block':
>> fs///fat/inode.c:163:9: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'sector_t {aka long long unsigned int}' [-Wformat=]
"invalid FAT chain (i_pos %lld, last_block %ld)",
^
fs///fat/fat.h:397:24: note: in definition of macro 'fat_fs_error'
__fat_fs_error(sb, 1, fmt , ## args)
^~~
vim +163 fs///fat/inode.c
> 24 #include "fat.h"
25
26 #ifndef CONFIG_FAT_DEFAULT_IOCHARSET
27 /* if user don't select VFAT, this is undefined. */
28 #define CONFIG_FAT_DEFAULT_IOCHARSET ""
29 #endif
30
31 #define KB_IN_SECTORS 2
32
33 /*
34 * A deserialized copy of the on-disk structure laid out in struct
35 * fat_boot_sector.
36 */
37 struct fat_bios_param_block {
38 u16 fat_sector_size;
39 u8 fat_sec_per_clus;
40 u16 fat_reserved;
41 u8 fat_fats;
42 u16 fat_dir_entries;
43 u16 fat_sectors;
44 u16 fat_fat_length;
45 u32 fat_total_sect;
46
47 u8 fat16_state;
48 u32 fat16_vol_id;
49
50 u32 fat32_length;
51 u32 fat32_root_cluster;
52 u16 fat32_info_sector;
53 u8 fat32_state;
54 u32 fat32_vol_id;
55 };
56
57 static int fat_default_codepage = CONFIG_FAT_DEFAULT_CODEPAGE;
58 static char fat_default_iocharset[] = CONFIG_FAT_DEFAULT_IOCHARSET;
59
60 static struct fat_floppy_defaults {
61 unsigned nr_sectors;
62 unsigned sec_per_clus;
63 unsigned dir_entries;
64 unsigned media;
65 unsigned fat_length;
66 } floppy_defaults[] = {
67 {
68 .nr_sectors = 160 * KB_IN_SECTORS,
69 .sec_per_clus = 1,
70 .dir_entries = 64,
71 .media = 0xFE,
72 .fat_length = 1,
73 },
74 {
75 .nr_sectors = 180 * KB_IN_SECTORS,
76 .sec_per_clus = 1,
77 .dir_entries = 64,
78 .media = 0xFC,
79 .fat_length = 2,
80 },
81 {
82 .nr_sectors = 320 * KB_IN_SECTORS,
83 .sec_per_clus = 2,
84 .dir_entries = 112,
85 .media = 0xFF,
86 .fat_length = 1,
87 },
88 {
89 .nr_sectors = 360 * KB_IN_SECTORS,
90 .sec_per_clus = 2,
91 .dir_entries = 112,
92 .media = 0xFD,
93 .fat_length = 2,
94 },
95 };
96
97 int fat_add_cluster(struct inode *inode)
98 {
99 int err, cluster;
100
101 err = fat_alloc_clusters(inode, &cluster, 1);
102 if (err)
103 return err;
104 /* FIXME: this cluster should be added after data of this
105 * cluster is writed */
106 err = fat_chain_add(inode, cluster, 1);
107 if (err)
108 fat_free_clusters(inode, cluster);
109 return err;
110 }
111
112 static inline int __fat_get_block(struct inode *inode, sector_t iblock,
113 unsigned long *max_blocks,
114 struct buffer_head *bh_result, int create)
115 {
116 struct super_block *sb = inode->i_sb;
117 struct msdos_sb_info *sbi = MSDOS_SB(sb);
118 unsigned long mapped_blocks;
119 sector_t phys, last_block;
120 int err, offset;
121
122 err = fat_bmap(inode, iblock, &phys, &mapped_blocks, create, false);
123 if (err)
124 return err;
125 if (phys) {
126 map_bh(bh_result, sb, phys);
127 *max_blocks = min(mapped_blocks, *max_blocks);
128 return 0;
129 }
130 if (!create)
131 return 0;
132
133 if (iblock != MSDOS_I(inode)->mmu_private >> sb->s_blocksize_bits) {
134 fat_fs_error(sb, "corrupted file size (i_pos %lld, %lld)",
135 MSDOS_I(inode)->i_pos, MSDOS_I(inode)->mmu_private);
136 return -EIO;
137 }
138
139 last_block = inode->i_blocks >> (sb->s_blocksize_bits - 9);
140 offset = (unsigned long)iblock & (sbi->sec_per_clus - 1);
141 /*
142 * allocate a cluster according to the following.
143 * 1) no more available blocks
144 * 2) not part of fallocate region
145 */
146 if (!offset && !(iblock < last_block)) {
147 /* TODO: multiple cluster allocation would be desirable. */
148 err = fat_add_cluster(inode);
149 if (err)
150 return err;
151 }
152 /* available blocks on this cluster */
153 mapped_blocks = sbi->sec_per_clus - offset;
154
155 *max_blocks = min(mapped_blocks, *max_blocks);
156 MSDOS_I(inode)->mmu_private += *max_blocks << sb->s_blocksize_bits;
157
158 err = fat_bmap(inode, iblock, &phys, &mapped_blocks, create, false);
159 if (err)
160 return err;
161 if (!phys) {
162 fat_fs_error(sb,
> 163 "invalid FAT chain (i_pos %lld, last_block %ld)",
164 MSDOS_I(inode)->i_pos, last_block);
165 return -EIO;
166 }
167
168 BUG_ON(*max_blocks != mapped_blocks);
169 set_buffer_new(bh_result);
170 map_bh(bh_result, sb, phys);
171
172 return 0;
173 }
174
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28213 bytes --]
next reply other threads:[~2018-06-08 1:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-08 1:38 kbuild test robot [this message]
2018-06-08 3:54 ` OGAWA Hirofumi
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=201806080946.h9NeMhUX%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hirofumi@mail.parknet.co.jp \
--cc=kbuild-all@01.org \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox