From: kbuild test robot <lkp@intel.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: kbuild-all@01.org, Alexander Viro <viro@zeniv.linux.org.uk>,
Hans de Goede <hdegoede@redhat.com>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v8] fs: Add VirtualBox guest shared folder (vboxsf) support
Date: Fri, 8 Mar 2019 02:17:47 +0800 [thread overview]
Message-ID: <201903080246.sK2nAJez%fengguang.wu@intel.com> (raw)
In-Reply-To: <20190307121312.6394-2-hdegoede@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 5435 bytes --]
Hi Hans,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.0]
[cannot apply to next-20190306]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Hans-de-Goede/fs-Add-VirtualBox-guest-shared-folder-vboxsf-support/20190307-231837
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
All warnings (new ones prefixed by >>):
>> fs/vboxsf/file.c:215:17: sparse: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
fs/vboxsf/file.c:215:17: sparse: expected long ( *read )( ... )
fs/vboxsf/file.c:215:17: sparse: got long ( * )( ... )
fs/vboxsf/file.c:217:18: sparse: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
fs/vboxsf/file.c:217:18: sparse: expected long ( *write )( ... )
fs/vboxsf/file.c:217:18: sparse: got long ( * )( ... )
>> fs/vboxsf/file.c:288:5: sparse: warning: symbol 'sf_write_end' was not declared. Should it be static?
sparse warnings: (new ones prefixed by >>)
fs/vboxsf/file.c:215:17: sparse: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
>> fs/vboxsf/file.c:215:17: sparse: expected long ( *read )( ... )
>> fs/vboxsf/file.c:215:17: sparse: got long ( * )( ... )
fs/vboxsf/file.c:217:18: sparse: warning: incorrect type in initializer (incompatible argument 2 (different address spaces))
>> fs/vboxsf/file.c:217:18: sparse: expected long ( *write )( ... )
fs/vboxsf/file.c:217:18: sparse: got long ( * )( ... )
fs/vboxsf/file.c:288:5: sparse: warning: symbol 'sf_write_end' was not declared. Should it be static?
vim +215 fs/vboxsf/file.c
213
214 const struct file_operations vboxsf_reg_fops = {
> 215 .read = sf_reg_read,
216 .open = sf_reg_open,
> 217 .write = sf_reg_write,
218 .release = sf_reg_release,
219 .mmap = generic_file_mmap,
220 .splice_read = generic_file_splice_read,
221 .read_iter = generic_file_read_iter,
222 .write_iter = generic_file_write_iter,
223 .fsync = noop_fsync,
224 .llseek = generic_file_llseek,
225 };
226
227 const struct inode_operations vboxsf_reg_iops = {
228 .getattr = vboxsf_getattr,
229 .setattr = vboxsf_setattr
230 };
231
232 static int sf_readpage(struct file *file, struct page *page)
233 {
234 struct sf_glob_info *sf_g = GET_GLOB_INFO(file_inode(file)->i_sb);
235 struct sf_reg_info *sf_r = file->private_data;
236 loff_t off = page_offset(page);
237 u32 nread = PAGE_SIZE;
238 u8 *buf;
239 int err;
240
241 buf = kmap(page);
242
243 err = vboxsf_read(sf_g->root, sf_r->handle, off, &nread, buf, false);
244 if (err == 0) {
245 memset(&buf[nread], 0, PAGE_SIZE - nread);
246 flush_dcache_page(page);
247 SetPageUptodate(page);
248 } else {
249 SetPageError(page);
250 }
251
252 kunmap(page);
253 unlock_page(page);
254 return err;
255 }
256
257 static int sf_writepage(struct page *page, struct writeback_control *wbc)
258 {
259 struct inode *inode = page->mapping->host;
260 struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
261 struct sf_inode_info *sf_i = GET_INODE_INFO(inode);
262 struct sf_reg_info *sf_r = sf_i->file->private_data;
263 loff_t off = page_offset(page);
264 loff_t size = i_size_read(inode);
265 u32 nwrite = PAGE_SIZE;
266 u8 *buf;
267 int err;
268
269 if (off + PAGE_SIZE > size)
270 nwrite = size & ~PAGE_MASK;
271
272 buf = kmap(page);
273 err = vboxsf_write(sf_g->root, sf_r->handle, off, &nwrite, buf, false);
274 kunmap(page);
275
276 if (err == 0) {
277 ClearPageError(page);
278 /* mtime changed */
279 sf_i->force_restat = 1;
280 } else {
281 ClearPageUptodate(page);
282 }
283
284 unlock_page(page);
285 return err;
286 }
287
> 288 int sf_write_end(struct file *file, struct address_space *mapping, loff_t pos,
289 unsigned int len, unsigned int copied, struct page *page,
290 void *fsdata)
291 {
292 struct inode *inode = mapping->host;
293 struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
294 struct sf_reg_info *sf_r = file->private_data;
295 unsigned int from = pos & ~PAGE_MASK;
296 u32 nwritten = len;
297 u8 *buf;
298 int err;
299
300 buf = kmap(page);
301 err = vboxsf_write(sf_g->root, sf_r->handle, pos, &nwritten,
302 buf + from, false);
303 kunmap(page);
304
305 if (err) {
306 nwritten = 0;
307 goto out;
308 }
309
310 /* mtime changed */
311 GET_INODE_INFO(inode)->force_restat = 1;
312
313 if (!PageUptodate(page) && nwritten == PAGE_SIZE)
314 SetPageUptodate(page);
315
316 pos += nwritten;
317 if (pos > inode->i_size)
318 i_size_write(inode, pos);
319
320 out:
321 unlock_page(page);
322 put_page(page);
323
324 return nwritten;
325 }
326
---
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: 67476 bytes --]
next prev parent reply other threads:[~2019-03-07 18:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-07 12:13 [PATCH v8 0/1] fs: Add VirtualBox guest shared folder (vboxsf) support Hans de Goede
2019-03-07 12:13 ` [PATCH v8] " Hans de Goede
2019-03-07 18:17 ` kbuild test robot [this message]
2019-03-08 12:54 ` kbuild 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=201903080246.sK2nAJez%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=hdegoede@redhat.com \
--cc=kbuild-all@01.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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.