From: kernel test robot <lkp@intel.com>
To: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org
Subject: [trondmy-nfs-2.6:testing 10/19] fs/nfs/nfs4state.c:2572:13: error: implicit declaration of function 'memalloc_nofs_save'
Date: Tue, 1 Feb 2022 10:14:54 +0800 [thread overview]
Message-ID: <202202011021.MbDOMg4H-lkp@intel.com> (raw)
tree: git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git testing
head: ad0a7ba45fd8af0dceeadddd78d85a85df429f5b
commit: 2f9032d5005af9b1581630763b61e3acd5dbaea4 [10/19] NFSv4: Protect the state recovery thread against direct reclaim
config: x86_64-randconfig-a013-20220131 (https://download.01.org/0day-ci/archive/20220201/202202011021.MbDOMg4H-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6b1e844b69f15bb7dffaf9365cd2b355d2eb7579)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add trondmy-nfs-2.6 git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git
git fetch --no-tags trondmy-nfs-2.6 testing
git checkout 2f9032d5005af9b1581630763b61e3acd5dbaea4
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/nfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> fs/nfs/nfs4state.c:2572:13: error: implicit declaration of function 'memalloc_nofs_save' [-Werror,-Wimplicit-function-declaration]
memflags = memalloc_nofs_save();
^
>> fs/nfs/nfs4state.c:2668:3: error: implicit declaration of function 'memalloc_nofs_restore' [-Werror,-Wimplicit-function-declaration]
memalloc_nofs_restore(memflags);
^
fs/nfs/nfs4state.c:2668:3: note: did you mean 'memalloc_nofs_save'?
fs/nfs/nfs4state.c:2572:13: note: 'memalloc_nofs_save' declared here
memflags = memalloc_nofs_save();
^
fs/nfs/nfs4state.c:2699:2: error: implicit declaration of function 'memalloc_nofs_restore' [-Werror,-Wimplicit-function-declaration]
memalloc_nofs_restore(memflags);
^
3 errors generated.
vim +/memalloc_nofs_save +2572 fs/nfs/nfs4state.c
2560
2561 static void nfs4_state_manager(struct nfs_client *clp)
2562 {
2563 unsigned int memflags;
2564 int status = 0;
2565 const char *section = "", *section_sep = "";
2566
2567 /*
2568 * State recovery can deadlock if the direct reclaim code tries
2569 * start NFS writeback. So ensure memory allocations are all
2570 * GFP_NOFS.
2571 */
> 2572 memflags = memalloc_nofs_save();
2573
2574 /* Ensure exclusive access to NFSv4 state */
2575 do {
2576 trace_nfs4_state_mgr(clp);
2577 clear_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state);
2578 if (test_bit(NFS4CLNT_PURGE_STATE, &clp->cl_state)) {
2579 section = "purge state";
2580 status = nfs4_purge_lease(clp);
2581 if (status < 0)
2582 goto out_error;
2583 continue;
2584 }
2585
2586 if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state)) {
2587 section = "lease expired";
2588 /* We're going to have to re-establish a clientid */
2589 status = nfs4_reclaim_lease(clp);
2590 if (status < 0)
2591 goto out_error;
2592 continue;
2593 }
2594
2595 /* Initialize or reset the session */
2596 if (test_and_clear_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state)) {
2597 section = "reset session";
2598 status = nfs4_reset_session(clp);
2599 if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state))
2600 continue;
2601 if (status < 0)
2602 goto out_error;
2603 }
2604
2605 /* Send BIND_CONN_TO_SESSION */
2606 if (test_and_clear_bit(NFS4CLNT_BIND_CONN_TO_SESSION,
2607 &clp->cl_state)) {
2608 section = "bind conn to session";
2609 status = nfs4_bind_conn_to_session(clp);
2610 if (status < 0)
2611 goto out_error;
2612 continue;
2613 }
2614
2615 if (test_and_clear_bit(NFS4CLNT_CHECK_LEASE, &clp->cl_state)) {
2616 section = "check lease";
2617 status = nfs4_check_lease(clp);
2618 if (status < 0)
2619 goto out_error;
2620 continue;
2621 }
2622
2623 if (test_and_clear_bit(NFS4CLNT_MOVED, &clp->cl_state)) {
2624 section = "migration";
2625 status = nfs4_handle_migration(clp);
2626 if (status < 0)
2627 goto out_error;
2628 }
2629
2630 if (test_and_clear_bit(NFS4CLNT_LEASE_MOVED, &clp->cl_state)) {
2631 section = "lease moved";
2632 status = nfs4_handle_lease_moved(clp);
2633 if (status < 0)
2634 goto out_error;
2635 }
2636
2637 /* First recover reboot state... */
2638 if (test_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state)) {
2639 section = "reclaim reboot";
2640 status = nfs4_do_reclaim(clp,
2641 clp->cl_mvops->reboot_recovery_ops);
2642 if (status == -EAGAIN)
2643 continue;
2644 if (status < 0)
2645 goto out_error;
2646 nfs4_state_end_reclaim_reboot(clp);
2647 }
2648
2649 /* Detect expired delegations... */
2650 if (test_and_clear_bit(NFS4CLNT_DELEGATION_EXPIRED, &clp->cl_state)) {
2651 section = "detect expired delegations";
2652 nfs_reap_expired_delegations(clp);
2653 continue;
2654 }
2655
2656 /* Now recover expired state... */
2657 if (test_bit(NFS4CLNT_RECLAIM_NOGRACE, &clp->cl_state)) {
2658 section = "reclaim nograce";
2659 status = nfs4_do_reclaim(clp,
2660 clp->cl_mvops->nograce_recovery_ops);
2661 if (status == -EAGAIN)
2662 continue;
2663 if (status < 0)
2664 goto out_error;
2665 clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &clp->cl_state);
2666 }
2667
> 2668 memalloc_nofs_restore(memflags);
2669 nfs4_end_drain_session(clp);
2670 nfs4_clear_state_manager_bit(clp);
2671
2672 if (!test_and_set_bit(NFS4CLNT_RECALL_RUNNING, &clp->cl_state)) {
2673 if (test_and_clear_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state)) {
2674 nfs_client_return_marked_delegations(clp);
2675 set_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state);
2676 }
2677 nfs4_layoutreturn_any_run(clp);
2678 clear_bit(NFS4CLNT_RECALL_RUNNING, &clp->cl_state);
2679 }
2680
2681 /* Did we race with an attempt to give us more work? */
2682 if (!test_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state))
2683 return;
2684 if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0)
2685 return;
2686 memflags = memalloc_nofs_save();
2687 } while (refcount_read(&clp->cl_count) > 1 && !signalled());
2688 goto out_drain;
2689
2690 out_error:
2691 if (strlen(section))
2692 section_sep = ": ";
2693 trace_nfs4_state_mgr_failed(clp, section, status);
2694 pr_warn_ratelimited("NFS: state manager%s%s failed on NFSv4 server %s"
2695 " with error %d\n", section_sep, section,
2696 clp->cl_hostname, -status);
2697 ssleep(1);
2698 out_drain:
2699 memalloc_nofs_restore(memflags);
2700 nfs4_end_drain_session(clp);
2701 nfs4_clear_state_manager_bit(clp);
2702 }
2703
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [trondmy-nfs-2.6:testing 10/19] fs/nfs/nfs4state.c:2572:13: error: implicit declaration of function 'memalloc_nofs_save'
Date: Tue, 01 Feb 2022 10:14:54 +0800 [thread overview]
Message-ID: <202202011021.MbDOMg4H-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7380 bytes --]
tree: git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git testing
head: ad0a7ba45fd8af0dceeadddd78d85a85df429f5b
commit: 2f9032d5005af9b1581630763b61e3acd5dbaea4 [10/19] NFSv4: Protect the state recovery thread against direct reclaim
config: x86_64-randconfig-a013-20220131 (https://download.01.org/0day-ci/archive/20220201/202202011021.MbDOMg4H-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6b1e844b69f15bb7dffaf9365cd2b355d2eb7579)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add trondmy-nfs-2.6 git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git
git fetch --no-tags trondmy-nfs-2.6 testing
git checkout 2f9032d5005af9b1581630763b61e3acd5dbaea4
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/nfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> fs/nfs/nfs4state.c:2572:13: error: implicit declaration of function 'memalloc_nofs_save' [-Werror,-Wimplicit-function-declaration]
memflags = memalloc_nofs_save();
^
>> fs/nfs/nfs4state.c:2668:3: error: implicit declaration of function 'memalloc_nofs_restore' [-Werror,-Wimplicit-function-declaration]
memalloc_nofs_restore(memflags);
^
fs/nfs/nfs4state.c:2668:3: note: did you mean 'memalloc_nofs_save'?
fs/nfs/nfs4state.c:2572:13: note: 'memalloc_nofs_save' declared here
memflags = memalloc_nofs_save();
^
fs/nfs/nfs4state.c:2699:2: error: implicit declaration of function 'memalloc_nofs_restore' [-Werror,-Wimplicit-function-declaration]
memalloc_nofs_restore(memflags);
^
3 errors generated.
vim +/memalloc_nofs_save +2572 fs/nfs/nfs4state.c
2560
2561 static void nfs4_state_manager(struct nfs_client *clp)
2562 {
2563 unsigned int memflags;
2564 int status = 0;
2565 const char *section = "", *section_sep = "";
2566
2567 /*
2568 * State recovery can deadlock if the direct reclaim code tries
2569 * start NFS writeback. So ensure memory allocations are all
2570 * GFP_NOFS.
2571 */
> 2572 memflags = memalloc_nofs_save();
2573
2574 /* Ensure exclusive access to NFSv4 state */
2575 do {
2576 trace_nfs4_state_mgr(clp);
2577 clear_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state);
2578 if (test_bit(NFS4CLNT_PURGE_STATE, &clp->cl_state)) {
2579 section = "purge state";
2580 status = nfs4_purge_lease(clp);
2581 if (status < 0)
2582 goto out_error;
2583 continue;
2584 }
2585
2586 if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state)) {
2587 section = "lease expired";
2588 /* We're going to have to re-establish a clientid */
2589 status = nfs4_reclaim_lease(clp);
2590 if (status < 0)
2591 goto out_error;
2592 continue;
2593 }
2594
2595 /* Initialize or reset the session */
2596 if (test_and_clear_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state)) {
2597 section = "reset session";
2598 status = nfs4_reset_session(clp);
2599 if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state))
2600 continue;
2601 if (status < 0)
2602 goto out_error;
2603 }
2604
2605 /* Send BIND_CONN_TO_SESSION */
2606 if (test_and_clear_bit(NFS4CLNT_BIND_CONN_TO_SESSION,
2607 &clp->cl_state)) {
2608 section = "bind conn to session";
2609 status = nfs4_bind_conn_to_session(clp);
2610 if (status < 0)
2611 goto out_error;
2612 continue;
2613 }
2614
2615 if (test_and_clear_bit(NFS4CLNT_CHECK_LEASE, &clp->cl_state)) {
2616 section = "check lease";
2617 status = nfs4_check_lease(clp);
2618 if (status < 0)
2619 goto out_error;
2620 continue;
2621 }
2622
2623 if (test_and_clear_bit(NFS4CLNT_MOVED, &clp->cl_state)) {
2624 section = "migration";
2625 status = nfs4_handle_migration(clp);
2626 if (status < 0)
2627 goto out_error;
2628 }
2629
2630 if (test_and_clear_bit(NFS4CLNT_LEASE_MOVED, &clp->cl_state)) {
2631 section = "lease moved";
2632 status = nfs4_handle_lease_moved(clp);
2633 if (status < 0)
2634 goto out_error;
2635 }
2636
2637 /* First recover reboot state... */
2638 if (test_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state)) {
2639 section = "reclaim reboot";
2640 status = nfs4_do_reclaim(clp,
2641 clp->cl_mvops->reboot_recovery_ops);
2642 if (status == -EAGAIN)
2643 continue;
2644 if (status < 0)
2645 goto out_error;
2646 nfs4_state_end_reclaim_reboot(clp);
2647 }
2648
2649 /* Detect expired delegations... */
2650 if (test_and_clear_bit(NFS4CLNT_DELEGATION_EXPIRED, &clp->cl_state)) {
2651 section = "detect expired delegations";
2652 nfs_reap_expired_delegations(clp);
2653 continue;
2654 }
2655
2656 /* Now recover expired state... */
2657 if (test_bit(NFS4CLNT_RECLAIM_NOGRACE, &clp->cl_state)) {
2658 section = "reclaim nograce";
2659 status = nfs4_do_reclaim(clp,
2660 clp->cl_mvops->nograce_recovery_ops);
2661 if (status == -EAGAIN)
2662 continue;
2663 if (status < 0)
2664 goto out_error;
2665 clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &clp->cl_state);
2666 }
2667
> 2668 memalloc_nofs_restore(memflags);
2669 nfs4_end_drain_session(clp);
2670 nfs4_clear_state_manager_bit(clp);
2671
2672 if (!test_and_set_bit(NFS4CLNT_RECALL_RUNNING, &clp->cl_state)) {
2673 if (test_and_clear_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state)) {
2674 nfs_client_return_marked_delegations(clp);
2675 set_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state);
2676 }
2677 nfs4_layoutreturn_any_run(clp);
2678 clear_bit(NFS4CLNT_RECALL_RUNNING, &clp->cl_state);
2679 }
2680
2681 /* Did we race with an attempt to give us more work? */
2682 if (!test_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state))
2683 return;
2684 if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0)
2685 return;
2686 memflags = memalloc_nofs_save();
2687 } while (refcount_read(&clp->cl_count) > 1 && !signalled());
2688 goto out_drain;
2689
2690 out_error:
2691 if (strlen(section))
2692 section_sep = ": ";
2693 trace_nfs4_state_mgr_failed(clp, section, status);
2694 pr_warn_ratelimited("NFS: state manager%s%s failed on NFSv4 server %s"
2695 " with error %d\n", section_sep, section,
2696 clp->cl_hostname, -status);
2697 ssleep(1);
2698 out_drain:
2699 memalloc_nofs_restore(memflags);
2700 nfs4_end_drain_session(clp);
2701 nfs4_clear_state_manager_bit(clp);
2702 }
2703
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-02-01 2:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-01 2:14 kernel test robot [this message]
2022-02-01 2:14 ` [trondmy-nfs-2.6:testing 10/19] fs/nfs/nfs4state.c:2572:13: error: implicit declaration of function 'memalloc_nofs_save' kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202202011021.MbDOMg4H-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.