* [jlayton:nfsd-tracepoints 9/14] fs/nfsd/nfsproc.c:508:9: error: implicit declaration of function 'trace_nfsd_proc_symlink'; did you mean 'nfsd_proc_symlink'?
@ 2025-03-15 9:33 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-03-15 9:33 UTC (permalink / raw)
To: Jeff Layton; +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git nfsd-tracepoints
head: 406b15fe7fc917eb20c0cfe48d441442adad9918
commit: 481c829d4945fb5f4f83828214f5e36c02f67f6c [9/14] nfsd: add tracepoints for symlink events
config: csky-randconfig-002-20250315 (https://download.01.org/0day-ci/archive/20250315/202503151700.DSZSysRq-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250315/202503151700.DSZSysRq-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/202503151700.DSZSysRq-lkp@intel.com/
All errors (new ones prefixed by >>):
fs/nfsd/nfsproc.c: In function 'nfsd_proc_create':
fs/nfsd/nfsproc.c:295:9: error: implicit declaration of function 'trace_nfsd_proc_create'; did you mean 'nfsd_proc_create'? [-Wimplicit-function-declaration]
295 | trace_nfsd_proc_create(rqstp, dirfhp, S_IFREG, argp->name, argp->len);
| ^~~~~~~~~~~~~~~~~~~~~~
| nfsd_proc_create
fs/nfsd/nfsproc.c: In function 'nfsd_proc_symlink':
>> fs/nfsd/nfsproc.c:508:9: error: implicit declaration of function 'trace_nfsd_proc_symlink'; did you mean 'nfsd_proc_symlink'? [-Wimplicit-function-declaration]
508 | trace_nfsd_proc_symlink(rqstp, &argp->ffh, argp->fname, argp->flen,
| ^~~~~~~~~~~~~~~~~~~~~~~
| nfsd_proc_symlink
>> fs/nfsd/nfsproc.c:542:1: error: invalid storage class for function 'nfsd_proc_mkdir'
542 | nfsd_proc_mkdir(struct svc_rqst *rqstp)
| ^~~~~~~~~~~~~~~
fs/nfsd/nfsproc.c: In function 'nfsd_proc_mkdir':
fs/nfsd/nfsproc.c:550:9: error: implicit declaration of function 'trace_nfsd_proc_mkdir'; did you mean 'nfsd_proc_mkdir'? [-Wimplicit-function-declaration]
550 | trace_nfsd_proc_mkdir(rqstp, &argp->fh, S_IFDIR, argp->name, argp->len);
| ^~~~~~~~~~~~~~~~~~~~~
| nfsd_proc_mkdir
fs/nfsd/nfsproc.c: In function 'nfsd_proc_symlink':
>> fs/nfsd/nfsproc.c:575:1: error: invalid storage class for function 'nfsd_proc_rmdir'
575 | nfsd_proc_rmdir(struct svc_rqst *rqstp)
| ^~~~~~~~~~~~~~~
>> fs/nfsd/nfsproc.c:589:13: error: invalid storage class for function 'nfsd_init_dirlist_pages'
589 | static void nfsd_init_dirlist_pages(struct svc_rqst *rqstp,
| ^~~~~~~~~~~~~~~~~~~~~~~
>> fs/nfsd/nfsproc.c:611:1: error: invalid storage class for function 'nfsd_proc_readdir'
611 | nfsd_proc_readdir(struct svc_rqst *rqstp)
| ^~~~~~~~~~~~~~~~~
>> fs/nfsd/nfsproc.c:639:1: error: invalid storage class for function 'nfsd_proc_statfs'
639 | nfsd_proc_statfs(struct svc_rqst *rqstp)
| ^~~~~~~~~~~~~~~~
>> fs/nfsd/nfsproc.c:824:28: error: initializer element is not constant
824 | .pc_func = nfsd_proc_mkdir,
| ^~~~~~~~~~~~~~~
fs/nfsd/nfsproc.c:824:28: note: (near initialization for 'nfsd_procedures2[14].pc_func')
fs/nfsd/nfsproc.c:836:28: error: initializer element is not constant
836 | .pc_func = nfsd_proc_rmdir,
| ^~~~~~~~~~~~~~~
fs/nfsd/nfsproc.c:836:28: note: (near initialization for 'nfsd_procedures2[15].pc_func')
fs/nfsd/nfsproc.c:847:28: error: initializer element is not constant
847 | .pc_func = nfsd_proc_readdir,
| ^~~~~~~~~~~~~~~~~
fs/nfsd/nfsproc.c:847:28: note: (near initialization for 'nfsd_procedures2[16].pc_func')
fs/nfsd/nfsproc.c:857:28: error: initializer element is not constant
857 | .pc_func = nfsd_proc_statfs,
| ^~~~~~~~~~~~~~~~
fs/nfsd/nfsproc.c:857:28: note: (near initialization for 'nfsd_procedures2[17].pc_func')
>> fs/nfsd/nfsproc.c:878:1: error: expected declaration or statement at end of input
878 | };
| ^
fs/nfsd/nfsproc.c:871:26: warning: unused variable 'nfsd_version2' [-Wunused-variable]
871 | const struct svc_version nfsd_version2 = {
| ^~~~~~~~~~~~~
fs/nfsd/nfsproc.c: At top level:
fs/nfsd/nfsproc.c:499:1: warning: 'nfsd_proc_symlink' defined but not used [-Wunused-function]
499 | nfsd_proc_symlink(struct svc_rqst *rqstp)
| ^~~~~~~~~~~~~~~~~
vim +508 fs/nfsd/nfsproc.c
497
498 static __be32
499 nfsd_proc_symlink(struct svc_rqst *rqstp)
500 {
501 struct nfsd_symlinkargs *argp = rqstp->rq_argp;
502 struct nfsd_stat *resp = rqstp->rq_resp;
503 struct nfsd_attrs attrs = {
504 .na_iattr = &argp->attrs,
505 };
506 struct svc_fh newfh;
507
> 508 trace_nfsd_proc_symlink(rqstp, &argp->ffh, argp->fname, argp->flen,
509 argp->tname, argp->tlen);
510
511 if (argp->tlen == 0) {
512 if (argp->tlen > NFS_MAXPATHLEN) {
513 resp->status = nfserr_nametoolong;
514 goto out;
515 }
516
517 argp->tname = svc_fill_symlink_pathname(rqstp, &argp->first,
518 page_address(rqstp->rq_arg.pages[0]),
519 argp->tlen);
520 if (IS_ERR(argp->tname)) {
521 resp->status = nfserrno(PTR_ERR(argp->tname));
522 goto out;
523 }
524
525 fh_init(&newfh, NFS_FHSIZE);
526 resp->status = nfsd_symlink(rqstp, &argp->ffh, argp->fname, argp->flen,
527 argp->tname, &attrs, &newfh);
528
529 kfree(argp->tname);
530 fh_put(&argp->ffh);
531 fh_put(&newfh);
532 out:
533 resp->status = nfsd_map_status(resp->status);
534 return rpc_success;
535 }
536
537 /*
538 * Make directory. This operation is not idempotent.
539 * N.B. After this call resp->fh needs an fh_put
540 */
541 static __be32
> 542 nfsd_proc_mkdir(struct svc_rqst *rqstp)
543 {
544 struct nfsd_createargs *argp = rqstp->rq_argp;
545 struct nfsd_diropres *resp = rqstp->rq_resp;
546 struct nfsd_attrs attrs = {
547 .na_iattr = &argp->attrs,
548 };
549
550 trace_nfsd_proc_mkdir(rqstp, &argp->fh, S_IFDIR, argp->name, argp->len);
551
552 if (resp->fh.fh_dentry) {
553 printk(KERN_WARNING
554 "nfsd_proc_mkdir: response already verified??\n");
555 }
556
557 argp->attrs.ia_valid &= ~ATTR_SIZE;
558 fh_init(&resp->fh, NFS_FHSIZE);
559 resp->status = nfsd_create(rqstp, &argp->fh, argp->name, argp->len,
560 &attrs, S_IFDIR, 0, &resp->fh);
561 fh_put(&argp->fh);
562 if (resp->status != nfs_ok)
563 goto out;
564
565 resp->status = fh_getattr(&resp->fh, &resp->stat);
566 out:
567 resp->status = nfsd_map_status(resp->status);
568 return rpc_success;
569 }
570
571 /*
572 * Remove a directory
573 */
574 static __be32
> 575 nfsd_proc_rmdir(struct svc_rqst *rqstp)
576 {
577 struct nfsd_diropargs *argp = rqstp->rq_argp;
578 struct nfsd_stat *resp = rqstp->rq_resp;
579
580 dprintk("nfsd: RMDIR %s %.*s\n", SVCFH_fmt(&argp->fh), argp->len, argp->name);
581
582 resp->status = nfsd_unlink(rqstp, &argp->fh, S_IFDIR,
583 argp->name, argp->len);
584 fh_put(&argp->fh);
585 resp->status = nfsd_map_status(resp->status);
586 return rpc_success;
587 }
588
> 589 static void nfsd_init_dirlist_pages(struct svc_rqst *rqstp,
590 struct nfsd_readdirres *resp,
591 u32 count)
592 {
593 struct xdr_buf *buf = &resp->dirlist;
594 struct xdr_stream *xdr = &resp->xdr;
595
596 memset(buf, 0, sizeof(*buf));
597
598 /* Reserve room for the NULL ptr & eof flag (-2 words) */
599 buf->buflen = clamp(count, (u32)(XDR_UNIT * 2), (u32)PAGE_SIZE);
600 buf->buflen -= XDR_UNIT * 2;
601 buf->pages = rqstp->rq_next_page;
602 rqstp->rq_next_page++;
603
604 xdr_init_encode_pages(xdr, buf, buf->pages, NULL);
605 }
606
607 /*
608 * Read a portion of a directory.
609 */
610 static __be32
> 611 nfsd_proc_readdir(struct svc_rqst *rqstp)
612 {
613 struct nfsd_readdirargs *argp = rqstp->rq_argp;
614 struct nfsd_readdirres *resp = rqstp->rq_resp;
615 loff_t offset;
616
617 dprintk("nfsd: READDIR %s %d bytes at %d\n",
618 SVCFH_fmt(&argp->fh),
619 argp->count, argp->cookie);
620
621 nfsd_init_dirlist_pages(rqstp, resp, argp->count);
622
623 resp->common.err = nfs_ok;
624 resp->cookie_offset = 0;
625 offset = argp->cookie;
626 resp->status = nfsd_readdir(rqstp, &argp->fh, &offset,
627 &resp->common, nfssvc_encode_entry);
628 nfssvc_encode_nfscookie(resp, offset);
629
630 fh_put(&argp->fh);
631 resp->status = nfsd_map_status(resp->status);
632 return rpc_success;
633 }
634
635 /*
636 * Get file system info
637 */
638 static __be32
> 639 nfsd_proc_statfs(struct svc_rqst *rqstp)
640 {
641 struct nfsd_fhandle *argp = rqstp->rq_argp;
642 struct nfsd_statfsres *resp = rqstp->rq_resp;
643
644 dprintk("nfsd: STATFS %s\n", SVCFH_fmt(&argp->fh));
645
646 resp->status = nfsd_statfs(rqstp, &argp->fh, &resp->stats,
647 NFSD_MAY_BYPASS_GSS_ON_ROOT);
648 fh_put(&argp->fh);
649 resp->status = nfsd_map_status(resp->status);
650 return rpc_success;
651 }
652
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-03-15 9:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-15 9:33 [jlayton:nfsd-tracepoints 9/14] fs/nfsd/nfsproc.c:508:9: error: implicit declaration of function 'trace_nfsd_proc_symlink'; did you mean 'nfsd_proc_symlink'? kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.