Ryusuke Konishi
b1f1b8ce0a
nilfs2: fix preempt count underflow in nilfs_btnode_prepare_change_key
This will fix the following preempt count underflow reported from
users with the title "[NILFS users] segctord problem" (Message-ID:
<949415.6494.qm@web58808.mail.re1.yahoo.com> and Message-ID:
<debc30fc0908270825v747c1734xa59126623cfd5b05@mail.gmail.com>):
WARNING: at kernel/sched.c:4890 sub_preempt_count+0x95/0xa0()
Hardware name: HP Compaq 6530b (KR980UT#ABC)
Modules linked in: bridge stp llc bnep rfcomm l2cap xfs exportfs nilfs2 cowloop loop vboxnetadp vboxnetflt vboxdrv btusb bluetooth uvcvideo videodev v4l1_compat v4l2_compat_ioctl32 arc4 snd_hda_codec_analog ecb iwlagn iwlcore rfkill lib80211 mac80211 snd_hda_intel snd_hda_codec ehci_hcd uhci_hcd usbcore snd_hwdep snd_pcm tg3 cfg80211 psmouse snd_timer joydev libphy ohci1394 snd_page_alloc hp_accel lis3lv02d ieee1394 led_class i915 drm i2c_algo_bit video backlight output i2c_core dm_crypt dm_mod
Pid: 4197, comm: segctord Not tainted 2.6.30-gentoo-r4-64 #7
Call Trace:
[<ffffffff8023fa05>] ? sub_preempt_count+0x95/0xa0
[<ffffffff802470f8>] warn_slowpath_common+0x78/0xd0
[<ffffffff8024715f>] warn_slowpath_null+0xf/0x20
[<ffffffff8023fa05>] sub_preempt_count+0x95/0xa0
[<ffffffffa04ce4db>] nilfs_btnode_prepare_change_key+0x11b/0x190 [nilfs2]
[<ffffffffa04d01ad>] nilfs_btree_assign_p+0x19d/0x1e0 [nilfs2]
[<ffffffffa04d10ad>] nilfs_btree_assign+0xbd/0x130 [nilfs2]
[<ffffffffa04cead7>] nilfs_bmap_assign+0x47/0x70 [nilfs2]
[<ffffffffa04d9bc6>] nilfs_segctor_do_construct+0x956/0x20f0 [nilfs2]
[<ffffffff805ac8e2>] ? _spin_unlock_irqrestore+0x12/0x40
[<ffffffff803c06e0>] ? __up_write+0xe0/0x150
[<ffffffff80262959>] ? up_write+0x9/0x10
[<ffffffffa04ce9f3>] ? nilfs_bmap_test_and_clear_dirty+0x43/0x60 [nilfs2]
[<ffffffffa04cd627>] ? nilfs_mdt_fetch_dirty+0x27/0x60 [nilfs2]
[<ffffffffa04db5fc>] nilfs_segctor_construct+0x8c/0xd0 [nilfs2]
[<ffffffffa04dc3dc>] nilfs_segctor_thread+0x15c/0x3a0 [nilfs2]
[<ffffffffa04dbe20>] ? nilfs_construction_timeout+0x0/0x10 [nilfs2]
[<ffffffff80252633>] ? add_timer+0x13/0x20
[<ffffffff802370da>] ? __wake_up_common+0x5a/0x90
[<ffffffff8025e960>] ? autoremove_wake_function+0x0/0x40
[<ffffffffa04dc280>] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
[<ffffffffa04dc280>] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
[<ffffffff8025e556>] kthread+0x56/0x90
[<ffffffff8020cdea>] child_rip+0xa/0x20
[<ffffffff8025e500>] ? kthread+0x0/0x90
[<ffffffff8020cde0>] ? child_rip+0x0/0x20
This problem was caused due to a missing radix_tree_preload() call in
the retry path of nilfs_btnode_prepare_change_key() function.
Reported-by: Eric A <eric225125@yahoo.com>
Reported-by: Jerome Poulin <jeromepoulin@gmail.com>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Tested-by: Jerome Poulin <jeromepoulin@gmail.com>
Cc: stable@kernel.org
2009-08-31 12:03:06 +09:00
..
2009-08-17 16:42:28 -05:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:14 -04:00
2009-08-27 12:22:08 -07:00
2009-06-11 21:36:01 -04:00
2009-07-12 12:22:34 -07:00
2009-06-17 08:46:57 -07:00
2009-07-12 12:22:34 -07:00
2009-08-21 10:09:44 +02:00
2009-06-11 21:36:06 -04:00
2009-08-04 03:53:28 +00:00
2009-05-11 14:13:10 +02:00
2009-04-30 10:48:26 -07:00
2009-04-02 19:05:08 -07:00
2009-06-15 21:30:28 -07:00
2009-06-24 08:15:24 -04:00
2009-07-14 12:28:43 -05:00
2009-07-28 14:26:06 -07:00
2009-06-17 00:36:36 -04:00
2009-07-12 12:22:34 -07:00
2009-07-12 12:22:34 -07:00
2009-08-24 16:48:45 +02:00
2009-07-13 16:39:25 -07:00
2009-07-12 12:22:34 -07:00
2009-07-12 12:22:34 -07:00
2009-05-27 10:20:13 -07:00
2009-07-11 11:22:34 -07:00
2009-08-14 14:04:46 +01:00
2009-07-12 12:22:34 -07:00
2009-07-12 12:22:34 -07:00
2009-06-30 18:56:03 -07:00
2009-07-12 12:22:34 -07:00
2009-04-02 19:04:53 -07:00
2009-08-24 12:53:01 -07:00
2009-07-10 19:18:59 -07:00
2009-07-21 11:54:42 +02:00
2009-07-13 17:55:35 -04:00
2009-08-04 12:13:06 +01:00
2009-07-23 11:08:36 -05:00
2009-07-12 12:22:34 -07:00
2009-06-22 11:34:42 -07:00
2009-06-15 21:44:43 -07:00
2009-08-24 16:28:42 -07:00
2009-07-12 12:22:34 -07:00
2009-08-31 12:03:06 +09:00
2009-06-15 21:44:43 -07:00
2009-08-27 08:02:10 -04:00
2009-06-16 19:47:48 -07:00
2009-08-24 14:41:28 -07:00
2009-06-11 21:36:13 -04:00
2009-07-12 13:02:09 -07:00
2009-08-18 16:31:13 -07:00
2009-06-11 21:36:12 -04:00
2009-07-30 17:31:23 +02:00
2009-07-29 19:10:36 -07:00
2009-07-12 12:22:34 -07:00
2009-05-09 10:49:41 -04:00
2009-06-11 21:36:07 -04:00
2009-07-12 12:22:34 -07:00
2009-07-28 13:45:21 -07:00
2009-06-17 00:36:37 -04:00
2009-07-12 12:22:34 -07:00
2009-07-30 17:28:26 +02:00
2009-06-18 13:03:46 -07:00
2009-08-17 01:23:48 -05:00
2009-06-30 18:55:58 -07:00
2009-06-18 14:46:10 +02:00
2009-03-26 02:18:35 +01:00
2009-06-18 13:03:52 -07:00
2009-07-01 11:14:28 -07:00
2009-08-07 10:39:57 -07:00
2009-03-31 23:00:28 -04:00
2009-07-01 10:56:25 +02:00
2009-07-10 20:31:53 +02:00
2009-07-29 21:07:55 +02:00
2009-08-21 17:40:08 -07:00
2009-07-12 12:22:34 -07:00
2009-08-07 10:39:56 -07:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:06 -04:00
2009-05-22 23:22:54 +02:00
2009-06-16 19:47:43 -07:00
2009-06-30 18:55:58 -07:00
2009-06-18 13:03:41 -07:00
2009-08-24 14:58:23 +10:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:02 -04:00
2009-04-20 23:02:52 -04:00
2009-03-31 23:00:27 -04:00
2009-06-24 08:15:26 -04:00
2009-03-31 23:00:26 -04:00
2009-08-07 14:38:29 -03:00
2009-06-11 21:36:07 -04:00
2009-06-24 08:15:27 -04:00
2009-01-14 14:15:30 +01:00
2009-07-14 12:34:17 +09:00
2009-08-18 16:31:12 -07:00
2009-04-24 16:36:03 -04:00
2009-04-07 08:31:16 -07:00
2009-05-13 15:13:42 -04:00
2009-06-29 08:59:10 +10:00
2009-08-07 10:39:56 -07:00
2009-01-14 14:15:29 +01:00
2009-06-24 08:15:27 -04:00
2009-07-22 21:14:14 +02:00
2009-05-11 14:13:10 +02:00
2009-01-14 14:15:31 +01:00
2009-08-15 18:40:11 -07:00
2009-06-18 13:03:57 -07:00
2009-01-14 14:15:31 +01:00
2009-05-19 11:37:46 +02:00
2009-04-20 23:02:52 -04:00
2009-06-24 08:15:26 -04:00
2009-07-06 13:57:03 -07:00
2009-02-18 15:37:53 -08:00
2009-01-14 14:15:30 +01:00
2009-06-11 21:36:02 -04:00