[axboe-block:for-5.16/block 136/175] kernel/sched/core.c:6346:23: error: no member named 'plug' in 'struct task_struct'

From: kernel test robot
Date: Sat Oct 30 2021 - 15:48:59 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-5.16/block
head: ef1661ba6d2e9c8eecd13ee04067bdcc59f7aac6
commit: 008f75a20e7072d0840ec323c39b42206f3fa8a0 [136/175] block: cleanup the flush plug helpers
config: arm-randconfig-c002-20211028 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d321548c3ce987f4f21350ba1c81fdb5d4354224)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?id=008f75a20e7072d0840ec323c39b42206f3fa8a0
git remote add axboe-block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags axboe-block for-5.16/block
git checkout 008f75a20e7072d0840ec323c39b42206f3fa8a0
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

Note: the axboe-block/for-5.16/block HEAD ef1661ba6d2e9c8eecd13ee04067bdcc59f7aac6 builds fine.
It only hurts bisectability.

All errors (new ones prefixed by >>):

kernel/sched/core.c:3482:13: warning: variable 'rq' set but not used [-Wunused-but-set-variable]
struct rq *rq;
^
>> kernel/sched/core.c:6346:23: error: no member named 'plug' in 'struct task_struct'
blk_flush_plug(tsk->plug, true);
~~~ ^
kernel/sched/core.c:6399:35: warning: no previous prototype for function 'schedule_user' [-Wmissing-prototypes]
asmlinkage __visible void __sched schedule_user(void)
^
kernel/sched/core.c:6399:22: note: declare 'static' if the function is not intended to be used outside of this translation unit
asmlinkage __visible void __sched schedule_user(void)
^
static
kernel/sched/core.c:8357:15: error: no member named 'plug' in 'struct task_struct'
if (current->plug)
~~~~~~~ ^
kernel/sched/core.c:8358:27: error: no member named 'plug' in 'struct task_struct'
blk_flush_plug(current->plug, true);
~~~~~~~ ^
2 warnings and 3 errors generated.
--
>> fs/fs-writeback.c:1896:17: error: no member named 'plug' in 'struct task_struct'
if (current->plug)
~~~~~~~ ^
fs/fs-writeback.c:1897:29: error: no member named 'plug' in 'struct task_struct'
blk_flush_plug(current->plug, false);
~~~~~~~ ^
fs/fs-writeback.c:2295:27: error: no member named 'plug' in 'struct task_struct'
blk_flush_plug(current->plug, true);
~~~~~~~ ^
3 errors generated.


vim +6346 kernel/sched/core.c

6312
6313 static inline void sched_submit_work(struct task_struct *tsk)
6314 {
6315 unsigned int task_flags;
6316
6317 if (task_is_running(tsk))
6318 return;
6319
6320 task_flags = tsk->flags;
6321 /*
6322 * If a worker went to sleep, notify and ask workqueue whether
6323 * it wants to wake up a task to maintain concurrency.
6324 * As this function is called inside the schedule() context,
6325 * we disable preemption to avoid it calling schedule() again
6326 * in the possible wakeup of a kworker and because wq_worker_sleeping()
6327 * requires it.
6328 */
6329 if (task_flags & (PF_WQ_WORKER | PF_IO_WORKER)) {
6330 preempt_disable();
6331 if (task_flags & PF_WQ_WORKER)
6332 wq_worker_sleeping(tsk);
6333 else
6334 io_wq_worker_sleeping(tsk);
6335 preempt_enable_no_resched();
6336 }
6337
6338 if (tsk_is_pi_blocked(tsk))
6339 return;
6340
6341 /*
6342 * If we are going to sleep and we have plugged IO queued,
6343 * make sure to submit it to avoid deadlocks.
6344 */
6345 if (blk_needs_flush_plug(tsk))
> 6346 blk_flush_plug(tsk->plug, true);
6347 }
6348

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip