Re: [PATCH 4/6] autofs - use struct for mount params

From: kbuild test robot
Date: Tue Nov 13 2018 - 20:54:51 EST


Hi Ian,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc2]
[cannot apply to next-20181113]
[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/Ian-Kent/autofs-improve-ioctl-sbi-checks/20181114-021150
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All errors (new ones prefixed by >>):

fs/autofs/inode.c: In function 'autofs_fill_super':
>> fs/autofs/inode.c:361:28: error: invalid type argument of '->' (have 'struct autofs_fs_params')
root_inode->i_uid = params->uid;
^~
fs/autofs/inode.c:362:28: error: invalid type argument of '->' (have 'struct autofs_fs_params')
root_inode->i_gid = params->gid;
^~

vim +361 fs/autofs/inode.c

313
314 int autofs_fill_super(struct super_block *s, void *data, int silent)
315 {
316 struct inode *root_inode;
317 struct dentry *root;
318 struct autofs_fs_params params;
319 struct autofs_sb_info *sbi;
320 struct autofs_info *ino;
321 int ret = -EINVAL;
322
323 sbi = autofs_alloc_sbi(s);
324 if (!sbi)
325 return -ENOMEM;
326
327 pr_debug("starting up, sbi = %p\n", sbi);
328
329 s->s_fs_info = sbi;
330 s->s_blocksize = 1024;
331 s->s_blocksize_bits = 10;
332 s->s_magic = AUTOFS_SUPER_MAGIC;
333 s->s_op = &autofs_sops;
334 s->s_d_op = &autofs_dentry_operations;
335 s->s_time_gran = 1;
336
337 /*
338 * Get the root inode and dentry, but defer checking for errors.
339 */
340 ino = autofs_new_ino(sbi);
341 if (!ino) {
342 ret = -ENOMEM;
343 goto fail_free;
344 }
345 root_inode = autofs_get_inode(s, S_IFDIR | 0755);
346 if (!root_inode) {
347 ret = -ENOMEM;
348 goto fail_ino;
349 }
350 root = d_make_root(root_inode);
351 if (!root)
352 goto fail_iput;
353
354 root->d_fsdata = ino;
355
356 memset(&params, 0, sizeof(struct autofs_fs_params));
357 if (autofs_parse_options(data, &params)) {
358 pr_err("called with bogus options\n");
359 goto fail_dput;
360 }
> 361 root_inode->i_uid = params->uid;
362 root_inode->i_gid = params->gid;
363
364 ret = autofs_apply_sbi_options(sbi, &params);
365 if (ret)
366 goto fail_dput;
367
368 if (autofs_type_trigger(sbi->type))
369 __managed_dentry_set_managed(root);
370
371 root_inode->i_fop = &autofs_root_operations;
372 root_inode->i_op = &autofs_dir_inode_operations;
373
374 /*
375 * Success! Install the root dentry now to indicate completion.
376 */
377 s->s_root = root;
378 return 0;
379
380 /*
381 * Failure ... clean up.
382 */
383 fail_dput:
384 dput(root);
385 goto fail_free;
386 fail_iput:
387 iput(root_inode);
388 fail_ino:
389 autofs_free_ino(ino);
390 fail_free:
391 kfree(sbi);
392 s->s_fs_info = NULL;
393 return ret;
394 }
395

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

Attachment: .config.gz
Description: application/gzip