linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '('
@ 2023-10-26 13:49 kernel test robot
  2023-10-26 14:37 ` Arnd Bergmann
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2023-10-26 13:49 UTC (permalink / raw)
  To: Amir Goldstein
  Cc: llvm, oe-kbuild-all, Linux Memory Management List,
	Christian Brauner, Jan Kara, Jeff Layton

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   2ef7141596eed0b4b45ef18b3626f428a6b0a822
commit: dfaf653dc41557548b2e75e6cd837071f7c63289 [14416/15220] exportfs: make ->encode_fh() a mandatory method for NFS export
config: hexagon-randconfig-r015-20211224 (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310262151.renqMvme-lkp@intel.com/

All errors (new ones prefixed by >>):

>> fs/exportfs/expfs.c:357:5: error: expected identifier or '('
   int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
       ^
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:16: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                  ^
>> fs/exportfs/expfs.c:357:5: error: expected ')'
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:16: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                  ^
   fs/exportfs/expfs.c:357:5: note: to match this '('
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:15: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                 ^
>> fs/exportfs/expfs.c:357:5: error: expected ')'
   int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
       ^
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:23: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                         ^
   fs/exportfs/expfs.c:357:5: note: to match this '('
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                ^
   fs/exportfs/expfs.c:384:19: error: expected identifier or '('
   EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
                     ^
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:16: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                  ^
   fs/exportfs/expfs.c:384:19: error: expected ')'
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:16: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                  ^
   fs/exportfs/expfs.c:384:19: note: to match this '('
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:15: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                 ^
   fs/exportfs/expfs.c:384:19: error: expected ')'
   EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
                     ^
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:23: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                         ^
   fs/exportfs/expfs.c:384:19: note: to match this '('
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                ^
>> fs/exportfs/expfs.c:384:1: error: pasting formed '__addressable_(', an invalid preprocessing token
   EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
   ^
   include/linux/export.h:87:33: note: expanded from macro 'EXPORT_SYMBOL_GPL'
   #define EXPORT_SYMBOL_GPL(sym)          _EXPORT_SYMBOL(sym, "GPL")
                                           ^
   include/linux/export.h:83:38: note: expanded from macro '_EXPORT_SYMBOL'
   #define _EXPORT_SYMBOL(sym, license)    __EXPORT_SYMBOL(sym, license, "")
                                           ^
   include/linux/export.h:75:2: note: expanded from macro '__EXPORT_SYMBOL'
           __ADDRESSABLE(sym)                                      \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler.h:215:15: note: expanded from macro '___ADDRESSABLE'
                   __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)&sym;
                               ^
   include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
   #define __PASTE(a,b) ___PASTE(a,b)
                        ^
   include/linux/compiler_types.h:74:24: note: expanded from macro '___PASTE'
   #define ___PASTE(a,b) a##b
                          ^
>> fs/exportfs/expfs.c:384:19: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
   EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
                     ^
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:16: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                  ^
   fs/exportfs/expfs.c:384:19: error: expected ')'
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:23: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                         ^
   fs/exportfs/expfs.c:384:19: note: to match this '('
   include/linux/exportfs.h:286:33: note: expanded from macro 'generic_encode_ino32_fh'
   #define generic_encode_ino32_fh NULL
                                   ^
   include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                ^
>> fs/exportfs/expfs.c:384:1: error: pasting formed ')216', an invalid preprocessing token
   EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
   ^
   include/linux/export.h:87:33: note: expanded from macro 'EXPORT_SYMBOL_GPL'
   #define EXPORT_SYMBOL_GPL(sym)          _EXPORT_SYMBOL(sym, "GPL")
                                           ^
   include/linux/export.h:83:38: note: expanded from macro '_EXPORT_SYMBOL'
   #define _EXPORT_SYMBOL(sym, license)    __EXPORT_SYMBOL(sym, license, "")
                                           ^
   include/linux/export.h:75:2: note: expanded from macro '__EXPORT_SYMBOL'
           __ADDRESSABLE(sym)                                      \
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler-clang.h:20:29: note: expanded from macro '__UNIQUE_ID'
   #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
                               ^
   include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
   #define __PASTE(a,b) ___PASTE(a,b)
                        ^
   include/linux/compiler_types.h:74:24: note: expanded from macro '___PASTE'
   #define ___PASTE(a,b) a##b
                          ^
>> fs/exportfs/expfs.c:384:1: error: expected function body after function declarator
   include/linux/export.h:87:33: note: expanded from macro 'EXPORT_SYMBOL_GPL'
   #define EXPORT_SYMBOL_GPL(sym)          _EXPORT_SYMBOL(sym, "GPL")
                                           ^
   include/linux/export.h:83:38: note: expanded from macro '_EXPORT_SYMBOL'
   #define _EXPORT_SYMBOL(sym, license)    __EXPORT_SYMBOL(sym, license, "")
                                           ^
   include/linux/export.h:75:2: note: expanded from macro '__EXPORT_SYMBOL'
           __ADDRESSABLE(sym)                                      \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler.h:215:3: note: expanded from macro '___ADDRESSABLE'
                   __UNIQUE_ID(__PASTE(__addressable_,sym)) = (void *)&sym;
                   ^
   include/linux/compiler-clang.h:20:68: note: expanded from macro '__UNIQUE_ID'
   #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
                                                                      ^
   <scratch space>:114:1: note: expanded from here
   216
   ^
>> fs/exportfs/expfs.c:384:1: error: pasting formed '__export_symbol_(', an invalid preprocessing token
   include/linux/export.h:87:33: note: expanded from macro 'EXPORT_SYMBOL_GPL'
   #define EXPORT_SYMBOL_GPL(sym)          _EXPORT_SYMBOL(sym, "GPL")
                                           ^
   include/linux/export.h:83:38: note: expanded from macro '_EXPORT_SYMBOL'
   #define _EXPORT_SYMBOL(sym, license)    __EXPORT_SYMBOL(sym, license, "")
                                           ^
   include/linux/export.h:76:18: note: expanded from macro '__EXPORT_SYMBOL'
           asm(__stringify(___EXPORT_SYMBOL(sym, license, ns)))
                           ^
   include/linux/export.h:47:18: note: expanded from macro '___EXPORT_SYMBOL'
           __export_symbol_##sym:                  ASM_NL  \
                           ^
   12 errors generated.


vim +357 fs/exportfs/expfs.c

   344	
   345	/**
   346	 * generic_encode_ino32_fh - generic export_operations->encode_fh function
   347	 * @inode:   the object to encode
   348	 * @fh:      where to store the file handle fragment
   349	 * @max_len: maximum length to store there (in 4 byte units)
   350	 * @parent:  parent directory inode, if wanted
   351	 *
   352	 * This generic encode_fh function assumes that the 32 inode number
   353	 * is suitable for locating an inode, and that the generation number
   354	 * can be used to check that it is still valid.  It places them in the
   355	 * filehandle fragment where export_decode_fh expects to find them.
   356	 */
 > 357	int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
   358				    struct inode *parent)
   359	{
   360		struct fid *fid = (void *)fh;
   361		int len = *max_len;
   362		int type = FILEID_INO32_GEN;
   363	
   364		if (parent && (len < 4)) {
   365			*max_len = 4;
   366			return FILEID_INVALID;
   367		} else if (len < 2) {
   368			*max_len = 2;
   369			return FILEID_INVALID;
   370		}
   371	
   372		len = 2;
   373		fid->i32.ino = inode->i_ino;
   374		fid->i32.gen = inode->i_generation;
   375		if (parent) {
   376			fid->i32.parent_ino = parent->i_ino;
   377			fid->i32.parent_gen = parent->i_generation;
   378			len = 4;
   379			type = FILEID_INO32_GEN_PARENT;
   380		}
   381		*max_len = len;
   382		return type;
   383	}
 > 384	EXPORT_SYMBOL_GPL(generic_encode_ino32_fh);
   385	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '('
  2023-10-26 13:49 [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '(' kernel test robot
@ 2023-10-26 14:37 ` Arnd Bergmann
  2023-10-26 15:15   ` Amir Goldstein
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2023-10-26 14:37 UTC (permalink / raw)
  To: kernel test robot, Amir Goldstein
  Cc: llvm, oe-kbuild-all, Linux Memory Management List,
	Christian Brauner, Jan Kara, Jeff Layton

On Thu, Oct 26, 2023, at 15:49, kernel test robot wrote:
> tree:   
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
> master
> head:   2ef7141596eed0b4b45ef18b3626f428a6b0a822
> commit: dfaf653dc41557548b2e75e6cd837071f7c63289 [14416/15220] 
> exportfs: make ->encode_fh() a mandatory method for NFS export
> config: hexagon-randconfig-r015-20211224 
> (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/config)
> compiler: clang version 16.0.4 
> (https://github.com/llvm/llvm-project.git 
> ae42196bc493ffe877a7e3dff8be32035dea4d07)
> reproduce (this is a W=1 build): 
> (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new 
> version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: 
> https://lore.kernel.org/oe-kbuild-all/202310262151.renqMvme-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
>>> fs/exportfs/expfs.c:357:5: error: expected identifier or '('
>    int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int 
> *max_len,
>        ^
>    include/linux/exportfs.h:286:33: note: expanded from macro 

This bit is trivially fixed by allowing the protoype to
be visible for CONFIG_EXPORTFS=m

--- a/include/linux/exportfs.h
+++ b/include/linux/exportfs.h
@@ -314,7 +314,7 @@ extern struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
 /*
  * Generic helpers for filesystems.
  */
-#ifdef CONFIG_EXPORTFS
+#if IS_ENABLED(CONFIG_EXPORTFS)
 int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
                            struct inode *parent);
 #else

but then we instead get link failures when the callers are
built-in:

x86_64-linux-ld: fs/ext4/super.o:(.rodata+0x11a0): undefined reference to `generic_encode_ino32_fh'
x86_64-linux-ld: fs/ext2/super.o:(.rodata+0x3a0): undefined reference to `generic_encode_ino32_fh'
x86_64-linux-ld: fs/fat/nfs.o:(.rodata+0x120): undefined reference to `generic_encode_ino32_fh'
x86_64-linux-ld: fs/ntfs3/super.o:(.rodata+0x2a0): undefined reference to `generic_encode_ino32_fh'
x86_64-linux-ld: fs/befs/linuxvfs.o:(.rodata+0x240): undefined reference to `generic_encode_ino32_fh'

Could this function just be move to fs/libfs.c or similar?

      Arnd


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '('
  2023-10-26 14:37 ` Arnd Bergmann
@ 2023-10-26 15:15   ` Amir Goldstein
  2023-10-26 20:25     ` Amir Goldstein
  0 siblings, 1 reply; 4+ messages in thread
From: Amir Goldstein @ 2023-10-26 15:15 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: kernel test robot, llvm, oe-kbuild-all,
	Linux Memory Management List, Christian Brauner, Jan Kara,
	Jeff Layton

On Thu, Oct 26, 2023 at 5:37 PM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Thu, Oct 26, 2023, at 15:49, kernel test robot wrote:
> > tree:
> > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> > master
> > head:   2ef7141596eed0b4b45ef18b3626f428a6b0a822
> > commit: dfaf653dc41557548b2e75e6cd837071f7c63289 [14416/15220]
> > exportfs: make ->encode_fh() a mandatory method for NFS export
> > config: hexagon-randconfig-r015-20211224
> > (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/config)
> > compiler: clang version 16.0.4
> > (https://github.com/llvm/llvm-project.git
> > ae42196bc493ffe877a7e3dff8be32035dea4d07)
> > reproduce (this is a W=1 build):
> > (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new
> > version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes:
> > https://lore.kernel.org/oe-kbuild-all/202310262151.renqMvme-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> >>> fs/exportfs/expfs.c:357:5: error: expected identifier or '('
> >    int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int
> > *max_len,
> >        ^
> >    include/linux/exportfs.h:286:33: note: expanded from macro
>
> This bit is trivially fixed by allowing the protoype to
> be visible for CONFIG_EXPORTFS=m
>
> --- a/include/linux/exportfs.h
> +++ b/include/linux/exportfs.h
> @@ -314,7 +314,7 @@ extern struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
>  /*
>   * Generic helpers for filesystems.
>   */
> -#ifdef CONFIG_EXPORTFS
> +#if IS_ENABLED(CONFIG_EXPORTFS)
>  int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
>                             struct inode *parent);
>  #else
>
> but then we instead get link failures when the callers are
> built-in:
>
> x86_64-linux-ld: fs/ext4/super.o:(.rodata+0x11a0): undefined reference to `generic_encode_ino32_fh'
> x86_64-linux-ld: fs/ext2/super.o:(.rodata+0x3a0): undefined reference to `generic_encode_ino32_fh'
> x86_64-linux-ld: fs/fat/nfs.o:(.rodata+0x120): undefined reference to `generic_encode_ino32_fh'
> x86_64-linux-ld: fs/ntfs3/super.o:(.rodata+0x2a0): undefined reference to `generic_encode_ino32_fh'
> x86_64-linux-ld: fs/befs/linuxvfs.o:(.rodata+0x240): undefined reference to `generic_encode_ino32_fh'
>
> Could this function just be move to fs/libfs.c or similar?

It could, but it is quite annoying to have to build the function when no code
should be calling it.

IMO, it would be better to make CONFIG_EXPORTFS a bool.
fs/exportfs/expfs.c is quite small and CONFIG_EXPORTFS=m
doesn't seem to be worthwhile.

Thanks,
Amir.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '('
  2023-10-26 15:15   ` Amir Goldstein
@ 2023-10-26 20:25     ` Amir Goldstein
  0 siblings, 0 replies; 4+ messages in thread
From: Amir Goldstein @ 2023-10-26 20:25 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: kernel test robot, llvm, oe-kbuild-all,
	Linux Memory Management List, Christian Brauner, Jan Kara,
	Jeff Layton, Randy Dunlap

On Thu, Oct 26, 2023 at 6:15 PM Amir Goldstein <amir73il@gmail.com> wrote:
>
> On Thu, Oct 26, 2023 at 5:37 PM Arnd Bergmann <arnd@arndb.de> wrote:
> >
> > On Thu, Oct 26, 2023, at 15:49, kernel test robot wrote:
> > > tree:
> > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> > > master
> > > head:   2ef7141596eed0b4b45ef18b3626f428a6b0a822
> > > commit: dfaf653dc41557548b2e75e6cd837071f7c63289 [14416/15220]
> > > exportfs: make ->encode_fh() a mandatory method for NFS export
> > > config: hexagon-randconfig-r015-20211224
> > > (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/config)
> > > compiler: clang version 16.0.4
> > > (https://github.com/llvm/llvm-project.git
> > > ae42196bc493ffe877a7e3dff8be32035dea4d07)
> > > reproduce (this is a W=1 build):
> > > (https://download.01.org/0day-ci/archive/20231026/202310262151.renqMvme-lkp@intel.com/reproduce)
> > >
> > > If you fix the issue in a separate patch/commit (i.e. not just a new
> > > version of
> > > the same patch/commit), kindly add following tags
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Closes:
> > > https://lore.kernel.org/oe-kbuild-all/202310262151.renqMvme-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > >>> fs/exportfs/expfs.c:357:5: error: expected identifier or '('
> > >    int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int
> > > *max_len,
> > >        ^
> > >    include/linux/exportfs.h:286:33: note: expanded from macro
> >
> > This bit is trivially fixed by allowing the protoype to
> > be visible for CONFIG_EXPORTFS=m
> >
> > --- a/include/linux/exportfs.h
> > +++ b/include/linux/exportfs.h
> > @@ -314,7 +314,7 @@ extern struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
> >  /*
> >   * Generic helpers for filesystems.
> >   */
> > -#ifdef CONFIG_EXPORTFS
> > +#if IS_ENABLED(CONFIG_EXPORTFS)
> >  int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len,
> >                             struct inode *parent);
> >  #else
> >
> > but then we instead get link failures when the callers are
> > built-in:
> >
> > x86_64-linux-ld: fs/ext4/super.o:(.rodata+0x11a0): undefined reference to `generic_encode_ino32_fh'
> > x86_64-linux-ld: fs/ext2/super.o:(.rodata+0x3a0): undefined reference to `generic_encode_ino32_fh'
> > x86_64-linux-ld: fs/fat/nfs.o:(.rodata+0x120): undefined reference to `generic_encode_ino32_fh'
> > x86_64-linux-ld: fs/ntfs3/super.o:(.rodata+0x2a0): undefined reference to `generic_encode_ino32_fh'
> > x86_64-linux-ld: fs/befs/linuxvfs.o:(.rodata+0x240): undefined reference to `generic_encode_ino32_fh'
> >
> > Could this function just be move to fs/libfs.c or similar?
>
> It could, but it is quite annoying to have to build the function when no code
> should be calling it.
>
> IMO, it would be better to make CONFIG_EXPORTFS a bool.
> fs/exportfs/expfs.c is quite small and CONFIG_EXPORTFS=m
> doesn't seem to be worthwhile.

Forget it. I missed the fact that the problem is that none of the
filesystem properly select EXPORTFS.

I will see if I want to fix that or give up and move the helper to fs/libfs.c.

Thanks,
Amir.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-10-26 20:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-26 13:49 [linux-next:master 14416/15220] fs/exportfs/expfs.c:357:5: error: expected identifier or '(' kernel test robot
2023-10-26 14:37 ` Arnd Bergmann
2023-10-26 15:15   ` Amir Goldstein
2023-10-26 20:25     ` Amir Goldstein

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).