All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.