Re: [PATCH block/for-4.5-fixes] writeback: keep superblock pinned during cgroup writeback association switches

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

 



On 02/16/2016 11:24 AM, Tejun Heo wrote:
 From 586afaa034bec88934bad4eb6ab38ba07031ec5a Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue, 16 Feb 2016 13:14:35 -0500

If cgroup writeback is in use, an inode is associated with a cgroup
for writeback.  If the inode's main dirtier changes to another cgroup,
the association gets updated asynchronously.  Nothing was pinning the
superblock while such switches are in progress and superblock could go
away while async switching is pending or in progress leading to
crashes like the following.

  kernel BUG at fs/jbd2/transaction.c:319!
  invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
  CPU: 1 PID: 29158 Comm: kworker/1:10 Not tainted 4.5.0-rc3 #51
  Hardware name: Google Google, BIOS Google 01/01/2011
  Workqueue: events inode_switch_wbs_work_fn
  task: ffff880213dbbd40 ti: ffff880209264000 task.ti: ffff880209264000
  RIP: 0010:[<ffffffff803e6922>]  [<ffffffff803e6922>] start_this_handle+0x382/0x3e0
  RSP: 0018:ffff880209267c30  EFLAGS: 00010202
  ...
  Call Trace:
   [<ffffffff803e6be4>] jbd2__journal_start+0xf4/0x190
   [<ffffffff803cfc7e>] __ext4_journal_start_sb+0x4e/0x70
   [<ffffffff803b31ec>] ext4_evict_inode+0x12c/0x3d0
   [<ffffffff8035338b>] evict+0xbb/0x190
   [<ffffffff80354190>] iput+0x130/0x190
   [<ffffffff80360223>] inode_switch_wbs_work_fn+0x343/0x4c0
   [<ffffffff80279819>] process_one_work+0x129/0x300
   [<ffffffff80279b16>] worker_thread+0x126/0x480
   [<ffffffff8027ed14>] kthread+0xc4/0xe0
   [<ffffffff809771df>] ret_from_fork+0x3f/0x70

Fix it by bumping s_active while cgroup association switching is in
flight.

Added for 4.5.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe cgroups" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux