Re: [PATCH v3] blkcg: prevent priority inversion problem during sync()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrea,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.0 next-20190306]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Andrea-Righi/blkcg-prevent-priority-inversion-problem-during-sync/20190310-020543
config: i386-randconfig-s1-201910 (attached as .config)
compiler: gcc-6 (Debian 6.5.0-2) 6.5.0 20181026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   fs/fs-writeback.c: In function 'sync_inodes_sb':
>> fs/fs-writeback.c:2450:2: error: implicit declaration of function 'blkcg_start_wb_wait_on_bdi' [-Werror=implicit-function-declaration]
     blkcg_start_wb_wait_on_bdi(bdi);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/fs-writeback.c:2460:2: error: implicit declaration of function 'blkcg_stop_wb_wait_on_bdi' [-Werror=implicit-function-declaration]
     blkcg_stop_wb_wait_on_bdi(bdi);
     ^~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/blkcg_start_wb_wait_on_bdi +2450 fs/fs-writeback.c

  2419	
  2420	/**
  2421	 * sync_inodes_sb	-	sync sb inode pages
  2422	 * @sb: the superblock
  2423	 *
  2424	 * This function writes and waits on any dirty inode belonging to this
  2425	 * super_block.
  2426	 */
  2427	void sync_inodes_sb(struct super_block *sb)
  2428	{
  2429		DEFINE_WB_COMPLETION_ONSTACK(done);
  2430		struct wb_writeback_work work = {
  2431			.sb		= sb,
  2432			.sync_mode	= WB_SYNC_ALL,
  2433			.nr_pages	= LONG_MAX,
  2434			.range_cyclic	= 0,
  2435			.done		= &done,
  2436			.reason		= WB_REASON_SYNC,
  2437			.for_sync	= 1,
  2438		};
  2439		struct backing_dev_info *bdi = sb->s_bdi;
  2440	
  2441		/*
  2442		 * Can't skip on !bdi_has_dirty() because we should wait for !dirty
  2443		 * inodes under writeback and I_DIRTY_TIME inodes ignored by
  2444		 * bdi_has_dirty() need to be written out too.
  2445		 */
  2446		if (bdi == &noop_backing_dev_info)
  2447			return;
  2448		WARN_ON(!rwsem_is_locked(&sb->s_umount));
  2449	
> 2450		blkcg_start_wb_wait_on_bdi(bdi);
  2451	
  2452		/* protect against inode wb switch, see inode_switch_wbs_work_fn() */
  2453		bdi_down_write_wb_switch_rwsem(bdi);
  2454		bdi_split_work_to_wbs(bdi, &work, false);
  2455		wb_wait_for_completion(bdi, &done);
  2456		bdi_up_write_wb_switch_rwsem(bdi);
  2457	
  2458		wait_sb_inodes(sb);
  2459	
> 2460		blkcg_stop_wb_wait_on_bdi(bdi);
  2461	}
  2462	EXPORT_SYMBOL(sync_inodes_sb);
  2463	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux