<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/nilfs2, branch v2.6.31</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>nilfs2: fix preempt count underflow in nilfs_btnode_prepare_change_key</title>
<updated>2009-08-31T03:03:06+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-08-29T19:21:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b1f1b8ce0a1d71cbc72f7540134d52b79bd8f5ac'/>
<id>b1f1b8ce0a1d71cbc72f7540134d52b79bd8f5ac</id>
<content type='text'>
This will fix the following preempt count underflow reported from
users with the title "[NILFS users] segctord problem" (Message-ID:
&lt;949415.6494.qm@web58808.mail.re1.yahoo.com&gt; and Message-ID:
&lt;debc30fc0908270825v747c1734xa59126623cfd5b05@mail.gmail.com&gt;):

 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:
  [&lt;ffffffff8023fa05&gt;] ? sub_preempt_count+0x95/0xa0
  [&lt;ffffffff802470f8&gt;] warn_slowpath_common+0x78/0xd0
  [&lt;ffffffff8024715f&gt;] warn_slowpath_null+0xf/0x20
  [&lt;ffffffff8023fa05&gt;] sub_preempt_count+0x95/0xa0
  [&lt;ffffffffa04ce4db&gt;] nilfs_btnode_prepare_change_key+0x11b/0x190 [nilfs2]
  [&lt;ffffffffa04d01ad&gt;] nilfs_btree_assign_p+0x19d/0x1e0 [nilfs2]
  [&lt;ffffffffa04d10ad&gt;] nilfs_btree_assign+0xbd/0x130 [nilfs2]
  [&lt;ffffffffa04cead7&gt;] nilfs_bmap_assign+0x47/0x70 [nilfs2]
  [&lt;ffffffffa04d9bc6&gt;] nilfs_segctor_do_construct+0x956/0x20f0 [nilfs2]
  [&lt;ffffffff805ac8e2&gt;] ? _spin_unlock_irqrestore+0x12/0x40
  [&lt;ffffffff803c06e0&gt;] ? __up_write+0xe0/0x150
  [&lt;ffffffff80262959&gt;] ? up_write+0x9/0x10
  [&lt;ffffffffa04ce9f3&gt;] ? nilfs_bmap_test_and_clear_dirty+0x43/0x60 [nilfs2]
  [&lt;ffffffffa04cd627&gt;] ? nilfs_mdt_fetch_dirty+0x27/0x60 [nilfs2]
  [&lt;ffffffffa04db5fc&gt;] nilfs_segctor_construct+0x8c/0xd0 [nilfs2]
  [&lt;ffffffffa04dc3dc&gt;] nilfs_segctor_thread+0x15c/0x3a0 [nilfs2]
  [&lt;ffffffffa04dbe20&gt;] ? nilfs_construction_timeout+0x0/0x10 [nilfs2]
  [&lt;ffffffff80252633&gt;] ? add_timer+0x13/0x20
  [&lt;ffffffff802370da&gt;] ? __wake_up_common+0x5a/0x90
  [&lt;ffffffff8025e960&gt;] ? autoremove_wake_function+0x0/0x40
  [&lt;ffffffffa04dc280&gt;] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
  [&lt;ffffffffa04dc280&gt;] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
  [&lt;ffffffff8025e556&gt;] kthread+0x56/0x90
  [&lt;ffffffff8020cdea&gt;] child_rip+0xa/0x20
  [&lt;ffffffff8025e500&gt;] ? kthread+0x0/0x90
  [&lt;ffffffff8020cde0&gt;] ? 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 &lt;eric225125@yahoo.com&gt;
Reported-by: Jerome Poulin &lt;jeromepoulin@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Tested-by: Jerome Poulin &lt;jeromepoulin@gmail.com&gt;
Cc: stable@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will fix the following preempt count underflow reported from
users with the title "[NILFS users] segctord problem" (Message-ID:
&lt;949415.6494.qm@web58808.mail.re1.yahoo.com&gt; and Message-ID:
&lt;debc30fc0908270825v747c1734xa59126623cfd5b05@mail.gmail.com&gt;):

 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:
  [&lt;ffffffff8023fa05&gt;] ? sub_preempt_count+0x95/0xa0
  [&lt;ffffffff802470f8&gt;] warn_slowpath_common+0x78/0xd0
  [&lt;ffffffff8024715f&gt;] warn_slowpath_null+0xf/0x20
  [&lt;ffffffff8023fa05&gt;] sub_preempt_count+0x95/0xa0
  [&lt;ffffffffa04ce4db&gt;] nilfs_btnode_prepare_change_key+0x11b/0x190 [nilfs2]
  [&lt;ffffffffa04d01ad&gt;] nilfs_btree_assign_p+0x19d/0x1e0 [nilfs2]
  [&lt;ffffffffa04d10ad&gt;] nilfs_btree_assign+0xbd/0x130 [nilfs2]
  [&lt;ffffffffa04cead7&gt;] nilfs_bmap_assign+0x47/0x70 [nilfs2]
  [&lt;ffffffffa04d9bc6&gt;] nilfs_segctor_do_construct+0x956/0x20f0 [nilfs2]
  [&lt;ffffffff805ac8e2&gt;] ? _spin_unlock_irqrestore+0x12/0x40
  [&lt;ffffffff803c06e0&gt;] ? __up_write+0xe0/0x150
  [&lt;ffffffff80262959&gt;] ? up_write+0x9/0x10
  [&lt;ffffffffa04ce9f3&gt;] ? nilfs_bmap_test_and_clear_dirty+0x43/0x60 [nilfs2]
  [&lt;ffffffffa04cd627&gt;] ? nilfs_mdt_fetch_dirty+0x27/0x60 [nilfs2]
  [&lt;ffffffffa04db5fc&gt;] nilfs_segctor_construct+0x8c/0xd0 [nilfs2]
  [&lt;ffffffffa04dc3dc&gt;] nilfs_segctor_thread+0x15c/0x3a0 [nilfs2]
  [&lt;ffffffffa04dbe20&gt;] ? nilfs_construction_timeout+0x0/0x10 [nilfs2]
  [&lt;ffffffff80252633&gt;] ? add_timer+0x13/0x20
  [&lt;ffffffff802370da&gt;] ? __wake_up_common+0x5a/0x90
  [&lt;ffffffff8025e960&gt;] ? autoremove_wake_function+0x0/0x40
  [&lt;ffffffffa04dc280&gt;] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
  [&lt;ffffffffa04dc280&gt;] ? nilfs_segctor_thread+0x0/0x3a0 [nilfs2]
  [&lt;ffffffff8025e556&gt;] kthread+0x56/0x90
  [&lt;ffffffff8020cdea&gt;] child_rip+0xa/0x20
  [&lt;ffffffff8025e500&gt;] ? kthread+0x0/0x90
  [&lt;ffffffff8020cde0&gt;] ? 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 &lt;eric225125@yahoo.com&gt;
Reported-by: Jerome Poulin &lt;jeromepoulin@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Tested-by: Jerome Poulin &lt;jeromepoulin@gmail.com&gt;
Cc: stable@kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix oopses with doubly mounted snapshots</title>
<updated>2009-08-18T17:10:13+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-08-18T15:29:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a924586036833086b262a371b09d1266c23bb4d1'/>
<id>a924586036833086b262a371b09d1266c23bb4d1</id>
<content type='text'>
will fix kernel oopses like the following:

 # mount -t nilfs2 -r -o cp=20 /dev/sdb1 /test1
 # mount -t nilfs2 -r -o cp=20 /dev/sdb1 /test2
 # umount /test1
 # umount /test2

BUG: sleeping function called from invalid context at arch/x86/mm/fault.c:1069
in_atomic(): 0, irqs_disabled(): 1, pid: 3886, name: umount.nilfs2
1 lock held by umount.nilfs2/3886:
 #0:  (&amp;type-&gt;s_umount_key#31){+.+...}, at: [&lt;c10b398a&gt;] deactivate_super+0x52/0x6c
irq event stamp: 1219
hardirqs last  enabled at (1219): [&lt;c135c774&gt;] __mutex_unlock_slowpath+0xf8/0x119
hardirqs last disabled at (1218): [&lt;c135c6d5&gt;] __mutex_unlock_slowpath+0x59/0x119
softirqs last  enabled at (1214): [&lt;c1033316&gt;] __do_softirq+0x1a5/0x1ad
softirqs last disabled at (1205): [&lt;c1033354&gt;] do_softirq+0x36/0x5a
Pid: 3886, comm: umount.nilfs2 Not tainted 2.6.31-rc6 #55
Call Trace:
 [&lt;c1023549&gt;] __might_sleep+0x107/0x10e
 [&lt;c13603c0&gt;] do_page_fault+0x246/0x397
 [&lt;c136017a&gt;] ? do_page_fault+0x0/0x397
 [&lt;c135e753&gt;] error_code+0x6b/0x70
 [&lt;c136017a&gt;] ? do_page_fault+0x0/0x397
 [&lt;c104f805&gt;] ? __lock_acquire+0x91/0x12fd
 [&lt;c1050a62&gt;] ? __lock_acquire+0x12ee/0x12fd
 [&lt;c1050a62&gt;] ? __lock_acquire+0x12ee/0x12fd
 [&lt;c1050b2b&gt;] lock_acquire+0xba/0xdd
 [&lt;d0d17d3f&gt;] ? nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;c135d4fe&gt;] down_write+0x2a/0x46
 [&lt;d0d17d3f&gt;] ? nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;d0d17d3f&gt;] nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;c104ea2c&gt;] ? mark_held_locks+0x43/0x5b
 [&lt;c104ecb1&gt;] ? trace_hardirqs_on_caller+0x10b/0x133
 [&lt;c104ece4&gt;] ? trace_hardirqs_on+0xb/0xd
 [&lt;d0d09ac1&gt;] nilfs_put_super+0x2f/0xca [nilfs2]
 [&lt;c10b3352&gt;] generic_shutdown_super+0x49/0xb8
 [&lt;c10b33de&gt;] kill_block_super+0x1d/0x31
 [&lt;c10e6599&gt;] ? vfs_quota_off+0x0/0x12
 [&lt;c10b398f&gt;] deactivate_super+0x57/0x6c
 [&lt;c10c4bc3&gt;] mntput_no_expire+0x8c/0xb4
 [&lt;c10c5094&gt;] sys_umount+0x27f/0x2a4
 [&lt;c10c50c6&gt;] sys_oldumount+0xd/0xf
 [&lt;c10031a4&gt;] sysenter_do_call+0x12/0x38
 ...

This turns out to be a bug brought by an -rc1 patch ("nilfs2: simplify
remaining sget() use").

In the patch, a new "put resource" function, nilfs_put_sbinfo()
was introduced to delay freeing nilfs_sb_info struct.

But the nilfs_put_sbinfo() mistakenly used atomic_dec_and_test()
function to check the reference count, and it caused the nilfs_sb_info
was freed when user mounted a snapshot twice.

This bug also suggests there was unseen memory leak in usual mount
/umount operations for nilfs.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
will fix kernel oopses like the following:

 # mount -t nilfs2 -r -o cp=20 /dev/sdb1 /test1
 # mount -t nilfs2 -r -o cp=20 /dev/sdb1 /test2
 # umount /test1
 # umount /test2

BUG: sleeping function called from invalid context at arch/x86/mm/fault.c:1069
in_atomic(): 0, irqs_disabled(): 1, pid: 3886, name: umount.nilfs2
1 lock held by umount.nilfs2/3886:
 #0:  (&amp;type-&gt;s_umount_key#31){+.+...}, at: [&lt;c10b398a&gt;] deactivate_super+0x52/0x6c
irq event stamp: 1219
hardirqs last  enabled at (1219): [&lt;c135c774&gt;] __mutex_unlock_slowpath+0xf8/0x119
hardirqs last disabled at (1218): [&lt;c135c6d5&gt;] __mutex_unlock_slowpath+0x59/0x119
softirqs last  enabled at (1214): [&lt;c1033316&gt;] __do_softirq+0x1a5/0x1ad
softirqs last disabled at (1205): [&lt;c1033354&gt;] do_softirq+0x36/0x5a
Pid: 3886, comm: umount.nilfs2 Not tainted 2.6.31-rc6 #55
Call Trace:
 [&lt;c1023549&gt;] __might_sleep+0x107/0x10e
 [&lt;c13603c0&gt;] do_page_fault+0x246/0x397
 [&lt;c136017a&gt;] ? do_page_fault+0x0/0x397
 [&lt;c135e753&gt;] error_code+0x6b/0x70
 [&lt;c136017a&gt;] ? do_page_fault+0x0/0x397
 [&lt;c104f805&gt;] ? __lock_acquire+0x91/0x12fd
 [&lt;c1050a62&gt;] ? __lock_acquire+0x12ee/0x12fd
 [&lt;c1050a62&gt;] ? __lock_acquire+0x12ee/0x12fd
 [&lt;c1050b2b&gt;] lock_acquire+0xba/0xdd
 [&lt;d0d17d3f&gt;] ? nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;c135d4fe&gt;] down_write+0x2a/0x46
 [&lt;d0d17d3f&gt;] ? nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;d0d17d3f&gt;] nilfs_detach_segment_constructor+0x2f/0x2fa [nilfs2]
 [&lt;c104ea2c&gt;] ? mark_held_locks+0x43/0x5b
 [&lt;c104ecb1&gt;] ? trace_hardirqs_on_caller+0x10b/0x133
 [&lt;c104ece4&gt;] ? trace_hardirqs_on+0xb/0xd
 [&lt;d0d09ac1&gt;] nilfs_put_super+0x2f/0xca [nilfs2]
 [&lt;c10b3352&gt;] generic_shutdown_super+0x49/0xb8
 [&lt;c10b33de&gt;] kill_block_super+0x1d/0x31
 [&lt;c10e6599&gt;] ? vfs_quota_off+0x0/0x12
 [&lt;c10b398f&gt;] deactivate_super+0x57/0x6c
 [&lt;c10c4bc3&gt;] mntput_no_expire+0x8c/0xb4
 [&lt;c10c5094&gt;] sys_umount+0x27f/0x2a4
 [&lt;c10c50c6&gt;] sys_oldumount+0xd/0xf
 [&lt;c10031a4&gt;] sysenter_do_call+0x12/0x38
 ...

This turns out to be a bug brought by an -rc1 patch ("nilfs2: simplify
remaining sget() use").

In the patch, a new "put resource" function, nilfs_put_sbinfo()
was introduced to delay freeing nilfs_sb_info struct.

But the nilfs_put_sbinfo() mistakenly used atomic_dec_and_test()
function to check the reference count, and it caused the nilfs_sb_info
was freed when user mounted a snapshot twice.

This bug also suggests there was unseen memory leak in usual mount
/umount operations for nilfs.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: missing a read lock for segment writer in nilfs_attach_checkpoint()</title>
<updated>2009-08-18T08:32:27+00:00</updated>
<author>
<name>Zhang Qiang</name>
<email>zhangqiang.buaa@gmail.com</email>
</author>
<published>2009-08-18T06:58:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1154ecbd2f8298ef75609f5f8ed5aca96be599fb'/>
<id>1154ecbd2f8298ef75609f5f8ed5aca96be599fb</id>
<content type='text'>
'ns_cno' of structure 'the_nilfs' must be protected from segment
writer, in other words, the caller of nilfs_get_checkpoint should hold
read lock for nilfs-&gt;ns_segctor_sem.  This patch adds the lock/unlock
operations in nilfs_attach_checkpoint() when calling
nilfs_cpfile_get_checkpoint().

Signed-off-by: Zhang Qiang &lt;zhangqiang.buaa@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'ns_cno' of structure 'the_nilfs' must be protected from segment
writer, in other words, the caller of nilfs_get_checkpoint should hold
read lock for nilfs-&gt;ns_segctor_sem.  This patch adds the lock/unlock
operations in nilfs_attach_checkpoint() when calling
nilfs_cpfile_get_checkpoint().

Signed-off-by: Zhang Qiang &lt;zhangqiang.buaa@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix missing unlock in error path of nilfs_mdt_write_page</title>
<updated>2009-08-02T13:24:15+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-08-02T08:45:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=01a261e09a21e0ba342d3907a79cf5c78ee3f37a'/>
<id>01a261e09a21e0ba342d3907a79cf5c78ee3f37a</id>
<content type='text'>
This adds a missing unlock of nilfs-&gt;ns_writer_mutex in
nilfs_mdt_write_page() function.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a missing unlock of nilfs-&gt;ns_writer_mutex in
nilfs_mdt_write_page() function.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix oops due to inconsistent state in page with discrete b-tree nodes</title>
<updated>2009-08-01T13:48:32+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-07-28T08:55:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a97778457f22181e8c38c4cd7d7e528378738a98'/>
<id>a97778457f22181e8c38c4cd7d7e528378738a98</id>
<content type='text'>
Andrea Gelmini gave me a report that a kernel oops hit on a nilfs
filesystem with a 1KB block size when doing rsync.

This turned out to be caused by an inconsistency of dirty state
between a page and its buffers storing b-tree node blocks.

If the page had multiple buffers split over multiple logs, and if the
logs were written at a time, a dirty flag remained in the page even
every dirty flag in the buffers was cleared.

This will fix the failure by dropping the dirty flag properly for
pages with the discrete multiple b-tree nodes.

Reported-by: Andrea Gelmini &lt;andrea.gelmini@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Tested-by: Andrea Gelmini &lt;andrea.gelmini@gmail.com&gt;
Cc: stable@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Andrea Gelmini gave me a report that a kernel oops hit on a nilfs
filesystem with a 1KB block size when doing rsync.

This turned out to be caused by an inconsistency of dirty state
between a page and its buffers storing b-tree node blocks.

If the page had multiple buffers split over multiple logs, and if the
logs were written at a time, a dirty flag remained in the page even
every dirty flag in the buffers was cleared.

This will fix the failure by dropping the dirty flag properly for
pages with the discrete multiple b-tree nodes.

Reported-by: Andrea Gelmini &lt;andrea.gelmini@gmail.com&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Tested-by: Andrea Gelmini &lt;andrea.gelmini@gmail.com&gt;
Cc: stable@kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>fs/Kconfig: move nilfs2 out</title>
<updated>2009-07-14T03:34:17+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-07-12T02:13:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4fed598a49c014cbc563179b25f2a4b8565e2a50'/>
<id>4fed598a49c014cbc563179b25f2a4b8565e2a50</id>
<content type='text'>
fs/Kconfig file was split into individual fs/*/Kconfig files before
nilfs was merged.  I've found the current config entry of nilfs is
tainting the work.  Sorry, I didn't notice.  This fixes the violation.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fs/Kconfig file was split into individual fs/*/Kconfig files before
nilfs was merged.  I've found the current config entry of nilfs is
tainting the work.  Sorry, I didn't notice.  This fixes the violation.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>headers: smp_lock.h redux</title>
<updated>2009-07-12T19:22:34+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-07-11T18:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=405f55712dfe464b3240d7816cc4fe4174831be2'/>
<id>405f55712dfe464b3240d7816cc4fe4174831be2</id>
<content type='text'>
* Remove smp_lock.h from files which don't need it (including some headers!)
* Add smp_lock.h to files which do need it
* Make smp_lock.h include conditional in hardirq.h
  It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

  This will make hardirq.h inclusion cheaper for every PREEMPT=n config
  (which includes allmodconfig/allyesconfig, BTW)

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Remove smp_lock.h from files which don't need it (including some headers!)
* Add smp_lock.h to files which do need it
* Make smp_lock.h include conditional in hardirq.h
  It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

  This will make hardirq.h inclusion cheaper for every PREEMPT=n config
  (which includes allmodconfig/allyesconfig, BTW)

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix disorder in cp count on error during deleting checkpoints</title>
<updated>2009-07-05T01:44:20+00:00</updated>
<author>
<name>Jiro SEKIBA</name>
<email>jir@unicus.jp</email>
</author>
<published>2009-07-04T14:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d9a0a345ab7a58a30ec38e5bb7401a28714914d2'/>
<id>d9a0a345ab7a58a30ec38e5bb7401a28714914d2</id>
<content type='text'>
This fixes a bug that checkpoint count gets wrong on errors when
deleting a series of checkpoints.

The count error is persistent since the checkpoint count is stored on
disk.  Some userland programs refer to the count via ioctl, and this
bugfix is needed to prevent malfunction of such programs.

Signed-off-by: Jiro SEKIBA &lt;jir@unicus.jp&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: stable@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a bug that checkpoint count gets wrong on errors when
deleting a series of checkpoints.

The count error is persistent since the checkpoint count is stored on
disk.  Some userland programs refer to the count via ioctl, and this
bugfix is needed to prevent malfunction of such programs.

Signed-off-by: Jiro SEKIBA &lt;jir@unicus.jp&gt;
Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: stable@kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix lockdep warning between regular file and inode file</title>
<updated>2009-07-05T01:44:20+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-06-18T17:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ff54de363afa4583e2a6249f25fe21dfaeb11ea2'/>
<id>ff54de363afa4583e2a6249f25fe21dfaeb11ea2</id>
<content type='text'>
This will fix the following false positive of recursive locking which
lockdep has detected:

=============================================
[ INFO: possible recursive locking detected ]
2.6.30-nilfs #42
---------------------------------------------
nilfs_cleanerd/10607 is trying to acquire lock:
 (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d025b7&gt;] nilfs_bmap_lookup_at_level+0x1a/0x74 [nilfs2]

but task is already holding lock:
 (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d024e0&gt;] nilfs_bmap_truncate+0x19/0x6a [nilfs2]
other info that might help us debug this:
2 locks held by nilfs_cleanerd/10607:
 #0:  (&amp;nilfs-&gt;ns_segctor_sem){++++.+}, at: [&lt;e0d0d75a&gt;] nilfs_transaction_begin+0xb6/0x10c [nilfs2]
 #1:  (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d024e0&gt;] nilfs_bmap_truncate+0x19/0x6a [nilfs2]

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will fix the following false positive of recursive locking which
lockdep has detected:

=============================================
[ INFO: possible recursive locking detected ]
2.6.30-nilfs #42
---------------------------------------------
nilfs_cleanerd/10607 is trying to acquire lock:
 (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d025b7&gt;] nilfs_bmap_lookup_at_level+0x1a/0x74 [nilfs2]

but task is already holding lock:
 (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d024e0&gt;] nilfs_bmap_truncate+0x19/0x6a [nilfs2]
other info that might help us debug this:
2 locks held by nilfs_cleanerd/10607:
 #0:  (&amp;nilfs-&gt;ns_segctor_sem){++++.+}, at: [&lt;e0d0d75a&gt;] nilfs_transaction_begin+0xb6/0x10c [nilfs2]
 #1:  (&amp;bmap-&gt;b_sem){++++-.}, at: [&lt;e0d024e0&gt;] nilfs_bmap_truncate+0x19/0x6a [nilfs2]

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nilfs2: fix incorrect KERN_CRIT messages in case of write failures</title>
<updated>2009-07-05T01:44:20+00:00</updated>
<author>
<name>Ryusuke Konishi</name>
<email>konishi.ryusuke@lab.ntt.co.jp</email>
</author>
<published>2009-06-18T14:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4a52df779700080de4afb0436d9dd9188514a69b'/>
<id>4a52df779700080de4afb0436d9dd9188514a69b</id>
<content type='text'>
In case of write-failure retries, the following KERN_CRIT level
messages are mistakenly output by nilfs_dat_commit_start() function:

nilfs_dat_commit_start: vbn = 408463, start = 12506, end = 18446744073709551615, pbn = 530210
nilfs_dat_commit_start: vbn = 408515, start = 12506, end = 18446744073709551615, pbn = 530211
nilfs_dat_commit_start: vbn = 408464, start = 12506, end = 18446744073709551615, pbn = 530212
...

This suppresses these messages.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: stable@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case of write-failure retries, the following KERN_CRIT level
messages are mistakenly output by nilfs_dat_commit_start() function:

nilfs_dat_commit_start: vbn = 408463, start = 12506, end = 18446744073709551615, pbn = 530210
nilfs_dat_commit_start: vbn = 408515, start = 12506, end = 18446744073709551615, pbn = 530211
nilfs_dat_commit_start: vbn = 408464, start = 12506, end = 18446744073709551615, pbn = 530212
...

This suppresses these messages.

Signed-off-by: Ryusuke Konishi &lt;konishi.ryusuke@lab.ntt.co.jp&gt;
Cc: stable@kernel.org
</pre>
</div>
</content>
</entry>
</feed>
