lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202410021451.Dj3s8Owx-lkp@intel.com>
Date: Wed, 2 Oct 2024 14:58:15 +0800
From: kernel test robot <lkp@...el.com>
To: Weston Andros Adamson <dros@...marydata.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
	Anna Schumaker <anna.schumaker@...cle.com>,
	Trond Myklebust <trond.myklebust@...merspace.com>,
	Mike Snitzer <snitzer@...nel.org>, NeilBrown <neilb@...e.de>,
	Jeff Layton <jlayton@...nel.org>
Subject: fs/nfs/localio.c:166: undefined reference to `nfs_to'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e32cde8d2bd7d251a8f9b434143977ddf13dcec6
commit: 70ba381e1a431245c137ed597ec6a05991c79bd9 nfs: add LOCALIO support
date:   9 days ago
config: x86_64-randconfig-002-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021451.Dj3s8Owx-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241002/202410021451.Dj3s8Owx-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410021451.Dj3s8Owx-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: fs/nfs/localio.o: in function `nfs_local_iocb_alloc':
>> fs/nfs/localio.c:166: undefined reference to `nfs_to'
>> ld: fs/nfs/localio.c:166: undefined reference to `nfs_to'
>> ld: fs/nfs/localio.c:166: undefined reference to `nfs_to'
   ld: fs/nfs/localio.o: in function `nfs_local_pgio_release':
   fs/nfs/localio.c:220: undefined reference to `nfs_to'
   ld: fs/nfs/localio.c:220: undefined reference to `nfs_to'
   ld: fs/nfs/localio.o:fs/nfs/localio.c:220: more undefined references to `nfs_to' follow
   ld: fs/nfs/localio.o: in function `nfs_local_disable':
>> fs/nfs/localio.c:80: undefined reference to `nfs_uuid_invalidate_one_client'
   ld: fs/nfs/localio.o: in function `nfs_local_open_fh':
>> fs/nfs/localio.c:110: undefined reference to `nfs_open_local_fh'
   ld: fs/nfs/localio.o: in function `nfs_local_doio':
   fs/nfs/localio.c:443: undefined reference to `nfs_to'
   ld: fs/nfs/localio.c:443: undefined reference to `nfs_to'
   ld: fs/nfs/localio.c:468: undefined reference to `nfs_to'
   ld: fs/nfs/localio.c:468: undefined reference to `nfs_to'
   ld: fs/nfs/localio.o: in function `nfs_local_release_commit_data':
   fs/nfs/localio.c:519: undefined reference to `nfs_to'
   ld: fs/nfs/localio.o:fs/nfs/localio.c:519: more undefined references to `nfs_to' follow


vim +166 fs/nfs/localio.c

    71	
    72	/*
    73	 * nfs_local_disable - disable local i/o for an nfs_client
    74	 */
    75	void nfs_local_disable(struct nfs_client *clp)
    76	{
    77		spin_lock(&clp->cl_localio_lock);
    78		if (test_and_clear_bit(NFS_CS_LOCAL_IO, &clp->cl_flags)) {
    79			trace_nfs_local_disable(clp);
  > 80			nfs_uuid_invalidate_one_client(&clp->cl_uuid);
    81		}
    82		spin_unlock(&clp->cl_localio_lock);
    83	}
    84	
    85	/*
    86	 * nfs_local_probe - probe local i/o support for an nfs_server and nfs_client
    87	 */
    88	void nfs_local_probe(struct nfs_client *clp)
    89	{
    90	}
    91	EXPORT_SYMBOL_GPL(nfs_local_probe);
    92	
    93	/*
    94	 * nfs_local_open_fh - open a local filehandle in terms of nfsd_file
    95	 *
    96	 * Returns a pointer to a struct nfsd_file or NULL
    97	 */
    98	struct nfsd_file *
    99	nfs_local_open_fh(struct nfs_client *clp, const struct cred *cred,
   100			  struct nfs_fh *fh, const fmode_t mode)
   101	{
   102		struct nfsd_file *localio;
   103		int status;
   104	
   105		if (!nfs_server_is_local(clp))
   106			return NULL;
   107		if (mode & ~(FMODE_READ | FMODE_WRITE))
   108			return NULL;
   109	
 > 110		localio = nfs_open_local_fh(&clp->cl_uuid, clp->cl_rpcclient,
   111					    cred, fh, mode);
   112		if (IS_ERR(localio)) {
   113			status = PTR_ERR(localio);
   114			trace_nfs_local_open_fh(fh, mode, status);
   115			switch (status) {
   116			case -ENOMEM:
   117			case -ENXIO:
   118			case -ENOENT:
   119				nfs_local_disable(clp);
   120			}
   121			return NULL;
   122		}
   123		return localio;
   124	}
   125	EXPORT_SYMBOL_GPL(nfs_local_open_fh);
   126	
   127	static struct bio_vec *
   128	nfs_bvec_alloc_and_import_pagevec(struct page **pagevec,
   129			unsigned int npages, gfp_t flags)
   130	{
   131		struct bio_vec *bvec, *p;
   132	
   133		bvec = kmalloc_array(npages, sizeof(*bvec), flags);
   134		if (bvec != NULL) {
   135			for (p = bvec; npages > 0; p++, pagevec++, npages--) {
   136				p->bv_page = *pagevec;
   137				p->bv_len = PAGE_SIZE;
   138				p->bv_offset = 0;
   139			}
   140		}
   141		return bvec;
   142	}
   143	
   144	static void
   145	nfs_local_iocb_free(struct nfs_local_kiocb *iocb)
   146	{
   147		kfree(iocb->bvec);
   148		kfree(iocb);
   149	}
   150	
   151	static struct nfs_local_kiocb *
   152	nfs_local_iocb_alloc(struct nfs_pgio_header *hdr,
   153			     struct nfsd_file *localio, gfp_t flags)
   154	{
   155		struct nfs_local_kiocb *iocb;
   156	
   157		iocb = kmalloc(sizeof(*iocb), flags);
   158		if (iocb == NULL)
   159			return NULL;
   160		iocb->bvec = nfs_bvec_alloc_and_import_pagevec(hdr->page_array.pagevec,
   161				hdr->page_array.npages, flags);
   162		if (iocb->bvec == NULL) {
   163			kfree(iocb);
   164			return NULL;
   165		}
 > 166		init_sync_kiocb(&iocb->kiocb, nfs_to->nfsd_file_file(localio));
   167		iocb->kiocb.ki_pos = hdr->args.offset;
   168		iocb->localio = localio;
   169		iocb->hdr = hdr;
   170		iocb->kiocb.ki_flags &= ~IOCB_APPEND;
   171		return iocb;
   172	}
   173	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ