[vfs:merge.nfs-fs_parse.0 1/2] fs/nfs/fs_context.c:101:45: error: macro "__fsparam" requires 5 arguments, but only 4 given

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

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git merge.nfs-fs_parse.0
head:   c354ed1dd8f49d2308cd07ecd889962db8a7bdae
commit: 06d90a1a82614b2942e9421e646e78dfbc7d3fd2 [1/2] Merge branch 'work.fs_parse' into merge.nfs-fs_parse
config: nds32-defconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 06d90a1a82614b2942e9421e646e78dfbc7d3fd2
        # save the attached .config to linux build tree
        GCC_VERSION=9.2.0 make.cross ARCH=nds32 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

Note: the vfs/merge.nfs-fs_parse.0 HEAD c354ed1dd8f49d2308cd07ecd889962db8a7bdae builds fine.
      It only hurts bisectibility.

All error/warnings (new ones prefixed by >>):

>> fs/nfs/fs_context.c:101:45: error: macro "__fsparam" requires 5 arguments, but only 4 given
     101 |     fs_param_neg_with_no|fs_param_v_optional),
         |                                             ^
   In file included from fs/nfs/fs_context.c:16:
   include/linux/fs_parser.h:106: note: macro "__fsparam" defined here
     106 | #define __fsparam(TYPE, NAME, OPT, FLAGS, DATA) \
         | 
>> fs/nfs/fs_context.c:100:2: error: '__fsparam' undeclared here (not in a function); did you mean 'nfs_param'?
     100 |  __fsparam(fs_param_is_string, "fsc",  Opt_fscache,
         |  ^~~~~~~~~
         |  nfs_param
   fs/nfs/fs_context.c:104:45: error: macro "__fsparam" requires 5 arguments, but only 4 given
     104 |     fs_param_neg_with_no|fs_param_deprecated),
         |                                             ^
   In file included from fs/nfs/fs_context.c:16:
   include/linux/fs_parser.h:106: note: macro "__fsparam" defined here
     106 | #define __fsparam(TYPE, NAME, OPT, FLAGS, DATA) \
         | 
>> fs/nfs/fs_context.c:105:45: error: macro "fsparam_enum" requires 3 arguments, but only 2 given
     105 |  fsparam_enum  ("local_lock", Opt_local_lock),
         |                                             ^
   In file included from fs/nfs/fs_context.c:16:
   include/linux/fs_parser.h:126: note: macro "fsparam_enum" defined here
     126 | #define fsparam_enum(NAME, OPT, array) __fsparam(fs_param_is_enum, NAME, OPT, 0, array)
         | 
>> fs/nfs/fs_context.c:105:2: error: 'fsparam_enum' undeclared here (not in a function); did you mean 'fs_param_is_enum'?
     105 |  fsparam_enum  ("local_lock", Opt_local_lock),
         |  ^~~~~~~~~~~~
         |  fs_param_is_enum
   fs/nfs/fs_context.c:107:47: error: macro "fsparam_enum" requires 3 arguments, but only 2 given
     107 |  fsparam_enum  ("lookupcache", Opt_lookupcache),
         |                                               ^
   In file included from fs/nfs/fs_context.c:16:
   include/linux/fs_parser.h:126: note: macro "fsparam_enum" defined here
     126 | #define fsparam_enum(NAME, OPT, array) __fsparam(fs_param_is_enum, NAME, OPT, 0, array)
         | 
>> fs/nfs/fs_context.c:161:39: error: array type has incomplete element type 'struct fs_parameter_enum'
     161 | static const struct fs_parameter_enum nfs_param_enums[] = {
         |                                       ^~~~~~~~~~~~~~~
>> fs/nfs/fs_context.c:173:21: error: variable 'nfs_fs_parameters' has initializer but incomplete type
     173 | static const struct fs_parameter_description nfs_fs_parameters = {
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~
   fs/nfs/fs_context.c:174:3: error: 'const struct fs_parameter_description' has no member named 'name'
     174 |  .name  = "nfs",
         |   ^~~~
>> fs/nfs/fs_context.c:174:11: warning: excess elements in struct initializer
     174 |  .name  = "nfs",
         |           ^~~~~
   fs/nfs/fs_context.c:174:11: note: (near initialization for 'nfs_fs_parameters')
>> fs/nfs/fs_context.c:175:3: error: 'const struct fs_parameter_description' has no member named 'specs'
     175 |  .specs  = nfs_param_specs,
         |   ^~~~~
   fs/nfs/fs_context.c:175:12: warning: excess elements in struct initializer
     175 |  .specs  = nfs_param_specs,
         |            ^~~~~~~~~~~~~~~
   fs/nfs/fs_context.c:175:12: note: (near initialization for 'nfs_fs_parameters')
>> fs/nfs/fs_context.c:176:3: error: 'const struct fs_parameter_description' has no member named 'enums'
     176 |  .enums  = nfs_param_enums,
         |   ^~~~~
   fs/nfs/fs_context.c:176:12: warning: excess elements in struct initializer
     176 |  .enums  = nfs_param_enums,
         |            ^~~~~~~~~~~~~~~
   fs/nfs/fs_context.c:176:12: note: (near initialization for 'nfs_fs_parameters')
   fs/nfs/fs_context.c: In function 'nfs_fs_context_parse_param':
>> fs/nfs/fs_context.c:445:21: error: passing argument 2 of 'fs_parse' from incompatible pointer type [-Werror=incompatible-pointer-types]
     445 |  opt = fs_parse(fc, &nfs_fs_parameters, param, &result);
         |                     ^~~~~~~~~~~~~~~~~~
         |                     |
         |                     const struct fs_parameter_description *
   In file included from fs/nfs/fs_context.c:16:
   include/linux/fs_parser.h:69:39: note: expected 'const struct fs_parameter_spec *' but argument is of type 'const struct fs_parameter_description *'
      69 |       const struct fs_parameter_spec *desc,
         |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
   fs/nfs/fs_context.c: At top level:
>> fs/nfs/fs_context.c:1418:17: error: initialization of 'const struct fs_parameter_spec *' from incompatible pointer type 'const struct fs_parameter_description *' [-Werror=incompatible-pointer-types]
    1418 |  .parameters  = &nfs_fs_parameters,
         |                 ^
   fs/nfs/fs_context.c:1418:17: note: (near initialization for 'nfs_fs_type.parameters')
   fs/nfs/fs_context.c:1430:17: error: initialization of 'const struct fs_parameter_spec *' from incompatible pointer type 'const struct fs_parameter_description *' [-Werror=incompatible-pointer-types]
    1430 |  .parameters  = &nfs_fs_parameters,
         |                 ^
   fs/nfs/fs_context.c:1430:17: note: (near initialization for 'nfs4_fs_type.parameters')
>> fs/nfs/fs_context.c:173:46: error: storage size of 'nfs_fs_parameters' isn't known
     173 | static const struct fs_parameter_description nfs_fs_parameters = {
         |                                              ^~~~~~~~~~~~~~~~~
   fs/nfs/fs_context.c:161:39: warning: 'nfs_param_enums' defined but not used [-Wunused-variable]
     161 | static const struct fs_parameter_enum nfs_param_enums[] = {
         |                                       ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/__fsparam +101 fs/nfs/fs_context.c

9954bf92c0cddd5 David Howells   2019-12-10   85  
e38bb238ed8ce28 Scott Mayhew    2019-12-10   86  static const struct fs_parameter_spec nfs_param_specs[] = {
e38bb238ed8ce28 Scott Mayhew    2019-12-10   87  	fsparam_flag_no("ac",		Opt_ac),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   88  	fsparam_u32   ("acdirmax",	Opt_acdirmax),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   89  	fsparam_u32   ("acdirmin",	Opt_acdirmin),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   90  	fsparam_flag_no("acl",		Opt_acl),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   91  	fsparam_u32   ("acregmax",	Opt_acregmax),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   92  	fsparam_u32   ("acregmin",	Opt_acregmin),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   93  	fsparam_u32   ("actimeo",	Opt_actimeo),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   94  	fsparam_string("addr",		Opt_addr),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   95  	fsparam_flag  ("bg",		Opt_bg),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   96  	fsparam_u32   ("bsize",		Opt_bsize),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   97  	fsparam_string("clientaddr",	Opt_clientaddr),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   98  	fsparam_flag_no("cto",		Opt_cto),
e38bb238ed8ce28 Scott Mayhew    2019-12-10   99  	fsparam_flag  ("fg",		Opt_fg),
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @100  	__fsparam(fs_param_is_string, "fsc",		Opt_fscache,
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @101  		  fs_param_neg_with_no|fs_param_v_optional),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  102  	fsparam_flag  ("hard",		Opt_hard),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  103  	__fsparam(fs_param_is_flag, "intr",		Opt_intr,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  104  		  fs_param_neg_with_no|fs_param_deprecated),
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @105  	fsparam_enum  ("local_lock",	Opt_local_lock),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  106  	fsparam_flag_no("lock",		Opt_lock),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  107  	fsparam_enum  ("lookupcache",	Opt_lookupcache),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  108  	fsparam_flag_no("migration",	Opt_migration),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  109  	fsparam_u32   ("minorversion",	Opt_minorversion),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  110  	fsparam_string("mountaddr",	Opt_mountaddr),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  111  	fsparam_string("mounthost",	Opt_mounthost),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  112  	fsparam_u32   ("mountport",	Opt_mountport),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  113  	fsparam_string("mountproto",	Opt_mountproto),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  114  	fsparam_u32   ("mountvers",	Opt_mountvers),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  115  	fsparam_u32   ("namlen",	Opt_namelen),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  116  	fsparam_u32   ("nconnect",	Opt_nconnect),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  117  	fsparam_string("nfsvers",	Opt_vers),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  118  	fsparam_u32   ("port",		Opt_port),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  119  	fsparam_flag_no("posix",	Opt_posix),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  120  	fsparam_string("proto",		Opt_proto),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  121  	fsparam_flag_no("rdirplus",	Opt_rdirplus),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  122  	fsparam_flag  ("rdma",		Opt_rdma),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  123  	fsparam_flag_no("resvport",	Opt_resvport),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  124  	fsparam_u32   ("retrans",	Opt_retrans),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  125  	fsparam_string("retry",		Opt_retry),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  126  	fsparam_u32   ("rsize",		Opt_rsize),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  127  	fsparam_string("sec",		Opt_sec),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  128  	fsparam_flag_no("sharecache",	Opt_sharecache),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  129  	fsparam_flag  ("sloppy",	Opt_sloppy),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  130  	fsparam_flag  ("soft",		Opt_soft),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  131  	fsparam_flag  ("softerr",	Opt_softerr),
c74dfe97c104bda Trond Myklebust 2020-01-06  132  	fsparam_flag  ("softreval",	Opt_softreval),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  133  	fsparam_string("source",	Opt_source),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  134  	fsparam_flag  ("tcp",		Opt_tcp),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  135  	fsparam_u32   ("timeo",		Opt_timeo),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  136  	fsparam_flag  ("udp",		Opt_udp),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  137  	fsparam_flag  ("v2",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  138  	fsparam_flag  ("v3",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  139  	fsparam_flag  ("v4",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  140  	fsparam_flag  ("v4.0",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  141  	fsparam_flag  ("v4.1",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  142  	fsparam_flag  ("v4.2",		Opt_v),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  143  	fsparam_string("vers",		Opt_vers),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  144  	fsparam_u32   ("wsize",		Opt_wsize),
e38bb238ed8ce28 Scott Mayhew    2019-12-10  145  	{}
9954bf92c0cddd5 David Howells   2019-12-10  146  };
9954bf92c0cddd5 David Howells   2019-12-10  147  
9954bf92c0cddd5 David Howells   2019-12-10  148  enum {
e38bb238ed8ce28 Scott Mayhew    2019-12-10  149  	Opt_local_lock_all,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  150  	Opt_local_lock_flock,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  151  	Opt_local_lock_none,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  152  	Opt_local_lock_posix,
9954bf92c0cddd5 David Howells   2019-12-10  153  };
9954bf92c0cddd5 David Howells   2019-12-10  154  
9954bf92c0cddd5 David Howells   2019-12-10  155  enum {
e38bb238ed8ce28 Scott Mayhew    2019-12-10  156  	Opt_lookupcache_all,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  157  	Opt_lookupcache_none,
e38bb238ed8ce28 Scott Mayhew    2019-12-10  158  	Opt_lookupcache_positive,
9954bf92c0cddd5 David Howells   2019-12-10  159  };
9954bf92c0cddd5 David Howells   2019-12-10  160  
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @161  static const struct fs_parameter_enum nfs_param_enums[] = {
e38bb238ed8ce28 Scott Mayhew    2019-12-10  162  	{ Opt_local_lock,	"all",		Opt_local_lock_all },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  163  	{ Opt_local_lock,	"flock",	Opt_local_lock_flock },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  164  	{ Opt_local_lock,	"none",		Opt_local_lock_none },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  165  	{ Opt_local_lock,	"posix",	Opt_local_lock_posix },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  166  	{ Opt_lookupcache,	"all",		Opt_lookupcache_all },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  167  	{ Opt_lookupcache,	"none",		Opt_lookupcache_none },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  168  	{ Opt_lookupcache,	"pos",		Opt_lookupcache_positive },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  169  	{ Opt_lookupcache,	"positive",	Opt_lookupcache_positive },
e38bb238ed8ce28 Scott Mayhew    2019-12-10  170  	{}
e38bb238ed8ce28 Scott Mayhew    2019-12-10  171  };
9954bf92c0cddd5 David Howells   2019-12-10  172  
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @173  static const struct fs_parameter_description nfs_fs_parameters = {
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @174  	.name		= "nfs",
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @175  	.specs		= nfs_param_specs,
e38bb238ed8ce28 Scott Mayhew    2019-12-10 @176  	.enums		= nfs_param_enums,
9954bf92c0cddd5 David Howells   2019-12-10  177  };
9954bf92c0cddd5 David Howells   2019-12-10  178  

:::::: The code at line 101 was first introduced by commit
:::::: e38bb238ed8ce280a217629294ba51dc217c5a2c NFS: Convert mount option parsing to use functionality from fs_parser.h

:::::: TO: Scott Mayhew <smayhew@xxxxxxxxxx>
:::::: CC: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx 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