Re: [PATCH v5 07/17] fanotify: encode file identifier for FAN_REPORT_FID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Amir,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.0-rc1]
[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/Amir-Goldstein/fanotify-add-support-for-more-event-types/20190111-090241
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=mips 

All warnings (new ones prefixed by >>):

   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/spinlock.h:51,
                    from include/linux/fdtable.h:11,
                    from fs/notify/fanotify/fanotify.c:3:
   fs/notify/fanotify/fanotify.c: In function 'fanotify_encode_fid':
   include/linux/kern_levels.h:5:18: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:424:10: note: in definition of macro 'printk_ratelimited'
      printk(fmt, ##__VA_ARGS__);    \
             ^~~
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:440:21: note: in expansion of macro 'KERN_WARNING'
     printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                        ^~~~~~~~~~~~
>> fs/notify/fanotify/fanotify.c:196:2: note: in expansion of macro 'pr_warn_ratelimited'
     pr_warn_ratelimited("fanotify: failed to encode fid (fsid=%x.%x, type=%d, bytes=%d, err=%i)\n",
     ^~~~~~~~~~~~~~~~~~~
   fs/notify/fanotify/fanotify.c:196:61: note: format string is defined here
     pr_warn_ratelimited("fanotify: failed to encode fid (fsid=%x.%x, type=%d, bytes=%d, err=%i)\n",
                                                               ~^
                                                               %lx
   In file included from include/linux/kernel.h:14:0,
                    from include/linux/list.h:9,
                    from include/linux/preempt.h:11,
                    from include/linux/spinlock.h:51,
                    from include/linux/fdtable.h:11,
                    from fs/notify/fanotify/fanotify.c:3:
   include/linux/kern_levels.h:5:18: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/printk.h:424:10: note: in definition of macro 'printk_ratelimited'
      printk(fmt, ##__VA_ARGS__);    \
             ^~~
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:440:21: note: in expansion of macro 'KERN_WARNING'
     printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                        ^~~~~~~~~~~~
>> fs/notify/fanotify/fanotify.c:196:2: note: in expansion of macro 'pr_warn_ratelimited'
     pr_warn_ratelimited("fanotify: failed to encode fid (fsid=%x.%x, type=%d, bytes=%d, err=%i)\n",
     ^~~~~~~~~~~~~~~~~~~
   fs/notify/fanotify/fanotify.c:196:64: note: format string is defined here
     pr_warn_ratelimited("fanotify: failed to encode fid (fsid=%x.%x, type=%d, bytes=%d, err=%i)\n",
                                                                  ~^
                                                                  %lx

vim +/pr_warn_ratelimited +196 fs/notify/fanotify/fanotify.c

   154	
   155	static int fanotify_encode_fid(struct fanotify_event *event,
   156				       const struct path *path, gfp_t gfp)
   157	{
   158		struct fanotify_fid *fid = &event->fid;
   159		int dwords, bytes = 0;
   160		struct kstatfs stat;
   161		int err, type;
   162	
   163		stat.f_fsid.val[0] = stat.f_fsid.val[1] = 0;
   164		fid->ext_fh = NULL;
   165		dwords = 0;
   166		err = -ENOENT;
   167		type = exportfs_encode_fh(path->dentry, NULL, &dwords,  0);
   168		if (!dwords)
   169			goto out_err;
   170	
   171		err = vfs_statfs(path, &stat);
   172		if (err)
   173			goto out_err;
   174	
   175		bytes = dwords << 2;
   176		if (bytes > FANOTIFY_INLINE_FH_LEN) {
   177			/* Treat failure to allocate fh as failure to allocate event */
   178			err = -ENOMEM;
   179			fid->ext_fh = kmalloc(bytes, gfp);
   180			if (!fid->ext_fh)
   181				goto out_err;
   182		}
   183	
   184		type = exportfs_encode_fh(path->dentry, fanotify_fid_fh(fid, bytes),
   185					  &dwords,  0);
   186		err = -EINVAL;
   187		if (!type || type == FILEID_INVALID || bytes != dwords << 2)
   188			goto out_err;
   189	
   190		fid->fsid = stat.f_fsid;
   191		event->fh_len = bytes;
   192	
   193		return type;
   194	
   195	out_err:
 > 196		pr_warn_ratelimited("fanotify: failed to encode fid (fsid=%x.%x, type=%d, bytes=%d, err=%i)\n",
   197				    stat.f_fsid.val[0], stat.f_fsid.val[1],
   198				    type, bytes, err);
   199		kfree(fid->ext_fh);
   200		fid->ext_fh = NULL;
   201		event->fh_len = 0;
   202	
   203		return FILEID_INVALID;
   204	}
   205	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux