<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/fs/reiserfs, branch linux-3.3.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>reiserfs: don't lock root inode searching</title>
<updated>2012-01-11T00:30:54+00:00</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2012-01-10T23:11:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9b467e6ebebbe75288aeb7e816ffbb5d35d6eaa3'/>
<id>9b467e6ebebbe75288aeb7e816ffbb5d35d6eaa3</id>
<content type='text'>
Nothing requires that we lock the filesystem until the root inode is
provided.

Also iget5_locked() triggers a warning because we are holding the
filesystem lock while allocating the inode, which result in a lockdep
suspicion that we have a lock inversion against the reclaim path:

[ 1986.896979] =================================
[ 1986.896990] [ INFO: inconsistent lock state ]
[ 1986.896997] 3.1.1-main #8
[ 1986.897001] ---------------------------------
[ 1986.897007] inconsistent {RECLAIM_FS-ON-W} -&gt; {IN-RECLAIM_FS-W} usage.
[ 1986.897016] kswapd0/16 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 1986.897023]  (&amp;REISERFS_SB(s)-&gt;lock){+.+.?.}, at: [&lt;c01f8bd4&gt;] reiserfs_write_lock+0x20/0x2a
[ 1986.897044] {RECLAIM_FS-ON-W} state was registered at:
[ 1986.897050]   [&lt;c014a5b9&gt;] mark_held_locks+0xae/0xd0
[ 1986.897060]   [&lt;c014aab3&gt;] lockdep_trace_alloc+0x7d/0x91
[ 1986.897068]   [&lt;c0190ee0&gt;] kmem_cache_alloc+0x1a/0x93
[ 1986.897078]   [&lt;c01e7728&gt;] reiserfs_alloc_inode+0x13/0x3d
[ 1986.897088]   [&lt;c01a5b06&gt;] alloc_inode+0x14/0x5f
[ 1986.897097]   [&lt;c01a5cb9&gt;] iget5_locked+0x62/0x13a
[ 1986.897106]   [&lt;c01e99e0&gt;] reiserfs_fill_super+0x410/0x8b9
[ 1986.897114]   [&lt;c01953da&gt;] mount_bdev+0x10b/0x159
[ 1986.897123]   [&lt;c01e764d&gt;] get_super_block+0x10/0x12
[ 1986.897131]   [&lt;c0195b38&gt;] mount_fs+0x59/0x12d
[ 1986.897138]   [&lt;c01a80d1&gt;] vfs_kern_mount+0x45/0x7a
[ 1986.897147]   [&lt;c01a83e3&gt;] do_kern_mount+0x2f/0xb0
[ 1986.897155]   [&lt;c01a987a&gt;] do_mount+0x5c2/0x612
[ 1986.897163]   [&lt;c01a9a72&gt;] sys_mount+0x61/0x8f
[ 1986.897170]   [&lt;c044060c&gt;] sysenter_do_call+0x12/0x32
[ 1986.897181] irq event stamp: 7509691
[ 1986.897186] hardirqs last  enabled at (7509691): [&lt;c0190f34&gt;] kmem_cache_alloc+0x6e/0x93
[ 1986.897197] hardirqs last disabled at (7509690): [&lt;c0190eea&gt;] kmem_cache_alloc+0x24/0x93
[ 1986.897209] softirqs last  enabled at (7508896): [&lt;c01294bd&gt;] __do_softirq+0xee/0xfd
[ 1986.897222] softirqs last disabled at (7508859): [&lt;c01030ed&gt;] do_softirq+0x50/0x9d
[ 1986.897234]
[ 1986.897235] other info that might help us debug this:
[ 1986.897242]  Possible unsafe locking scenario:
[ 1986.897244]
[ 1986.897250]        CPU0
[ 1986.897254]        ----
[ 1986.897257]   lock(&amp;REISERFS_SB(s)-&gt;lock);
[ 1986.897265] &lt;Interrupt&gt;
[ 1986.897269]     lock(&amp;REISERFS_SB(s)-&gt;lock);
[ 1986.897276]
[ 1986.897277]  *** DEADLOCK ***
[ 1986.897278]
[ 1986.897286] no locks held by kswapd0/16.
[ 1986.897291]
[ 1986.897292] stack backtrace:
[ 1986.897299] Pid: 16, comm: kswapd0 Not tainted 3.1.1-main #8
[ 1986.897306] Call Trace:
[ 1986.897314]  [&lt;c0439e76&gt;] ? printk+0xf/0x11
[ 1986.897324]  [&lt;c01482d1&gt;] print_usage_bug+0x20e/0x21a
[ 1986.897332]  [&lt;c01479b8&gt;] ? print_irq_inversion_bug+0x172/0x172
[ 1986.897341]  [&lt;c014855c&gt;] mark_lock+0x27f/0x483
[ 1986.897349]  [&lt;c0148d88&gt;] __lock_acquire+0x628/0x1472
[ 1986.897358]  [&lt;c0149fae&gt;] lock_acquire+0x47/0x5e
[ 1986.897366]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897384]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897397]  [&lt;c043b5ef&gt;] mutex_lock_nested+0x35/0x26f
[ 1986.897409]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897421]  [&lt;c01f8bd4&gt;] reiserfs_write_lock+0x20/0x2a
[ 1986.897433]  [&lt;c01e2edd&gt;] map_block_for_writepage+0xc9/0x590
[ 1986.897448]  [&lt;c01b1706&gt;] ? create_empty_buffers+0x33/0x8f
[ 1986.897461]  [&lt;c0121124&gt;] ? get_parent_ip+0xb/0x31
[ 1986.897472]  [&lt;c043ef7f&gt;] ? sub_preempt_count+0x81/0x8e
[ 1986.897485]  [&lt;c043cae0&gt;] ? _raw_spin_unlock+0x27/0x3d
[ 1986.897496]  [&lt;c0121124&gt;] ? get_parent_ip+0xb/0x31
[ 1986.897508]  [&lt;c01e355d&gt;] reiserfs_writepage+0x1b9/0x3e7
[ 1986.897521]  [&lt;c0173b40&gt;] ? clear_page_dirty_for_io+0xcb/0xde
[ 1986.897533]  [&lt;c014a6e3&gt;] ? trace_hardirqs_on_caller+0x108/0x138
[ 1986.897546]  [&lt;c014a71e&gt;] ? trace_hardirqs_on+0xb/0xd
[ 1986.897559]  [&lt;c0177b38&gt;] shrink_page_list+0x34f/0x5e2
[ 1986.897572]  [&lt;c01780a7&gt;] shrink_inactive_list+0x172/0x22c
[ 1986.897585]  [&lt;c0178464&gt;] shrink_zone+0x303/0x3b1
[ 1986.897597]  [&lt;c043cae0&gt;] ? _raw_spin_unlock+0x27/0x3d
[ 1986.897611]  [&lt;c01788c9&gt;] kswapd+0x3b7/0x5f2

The deadlock shouldn't happen since we are doing that allocation in the
mount path, the filesystem is not available for any reclaim.  Still the
warning is annoying.

To solve this, acquire the lock later only where we need it, right before
calling reiserfs_read_locked_inode() that wants to lock to walk the tree.

Reported-by: Knut Petersen &lt;Knut_Petersen@t-online.de&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>
Nothing requires that we lock the filesystem until the root inode is
provided.

Also iget5_locked() triggers a warning because we are holding the
filesystem lock while allocating the inode, which result in a lockdep
suspicion that we have a lock inversion against the reclaim path:

[ 1986.896979] =================================
[ 1986.896990] [ INFO: inconsistent lock state ]
[ 1986.896997] 3.1.1-main #8
[ 1986.897001] ---------------------------------
[ 1986.897007] inconsistent {RECLAIM_FS-ON-W} -&gt; {IN-RECLAIM_FS-W} usage.
[ 1986.897016] kswapd0/16 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 1986.897023]  (&amp;REISERFS_SB(s)-&gt;lock){+.+.?.}, at: [&lt;c01f8bd4&gt;] reiserfs_write_lock+0x20/0x2a
[ 1986.897044] {RECLAIM_FS-ON-W} state was registered at:
[ 1986.897050]   [&lt;c014a5b9&gt;] mark_held_locks+0xae/0xd0
[ 1986.897060]   [&lt;c014aab3&gt;] lockdep_trace_alloc+0x7d/0x91
[ 1986.897068]   [&lt;c0190ee0&gt;] kmem_cache_alloc+0x1a/0x93
[ 1986.897078]   [&lt;c01e7728&gt;] reiserfs_alloc_inode+0x13/0x3d
[ 1986.897088]   [&lt;c01a5b06&gt;] alloc_inode+0x14/0x5f
[ 1986.897097]   [&lt;c01a5cb9&gt;] iget5_locked+0x62/0x13a
[ 1986.897106]   [&lt;c01e99e0&gt;] reiserfs_fill_super+0x410/0x8b9
[ 1986.897114]   [&lt;c01953da&gt;] mount_bdev+0x10b/0x159
[ 1986.897123]   [&lt;c01e764d&gt;] get_super_block+0x10/0x12
[ 1986.897131]   [&lt;c0195b38&gt;] mount_fs+0x59/0x12d
[ 1986.897138]   [&lt;c01a80d1&gt;] vfs_kern_mount+0x45/0x7a
[ 1986.897147]   [&lt;c01a83e3&gt;] do_kern_mount+0x2f/0xb0
[ 1986.897155]   [&lt;c01a987a&gt;] do_mount+0x5c2/0x612
[ 1986.897163]   [&lt;c01a9a72&gt;] sys_mount+0x61/0x8f
[ 1986.897170]   [&lt;c044060c&gt;] sysenter_do_call+0x12/0x32
[ 1986.897181] irq event stamp: 7509691
[ 1986.897186] hardirqs last  enabled at (7509691): [&lt;c0190f34&gt;] kmem_cache_alloc+0x6e/0x93
[ 1986.897197] hardirqs last disabled at (7509690): [&lt;c0190eea&gt;] kmem_cache_alloc+0x24/0x93
[ 1986.897209] softirqs last  enabled at (7508896): [&lt;c01294bd&gt;] __do_softirq+0xee/0xfd
[ 1986.897222] softirqs last disabled at (7508859): [&lt;c01030ed&gt;] do_softirq+0x50/0x9d
[ 1986.897234]
[ 1986.897235] other info that might help us debug this:
[ 1986.897242]  Possible unsafe locking scenario:
[ 1986.897244]
[ 1986.897250]        CPU0
[ 1986.897254]        ----
[ 1986.897257]   lock(&amp;REISERFS_SB(s)-&gt;lock);
[ 1986.897265] &lt;Interrupt&gt;
[ 1986.897269]     lock(&amp;REISERFS_SB(s)-&gt;lock);
[ 1986.897276]
[ 1986.897277]  *** DEADLOCK ***
[ 1986.897278]
[ 1986.897286] no locks held by kswapd0/16.
[ 1986.897291]
[ 1986.897292] stack backtrace:
[ 1986.897299] Pid: 16, comm: kswapd0 Not tainted 3.1.1-main #8
[ 1986.897306] Call Trace:
[ 1986.897314]  [&lt;c0439e76&gt;] ? printk+0xf/0x11
[ 1986.897324]  [&lt;c01482d1&gt;] print_usage_bug+0x20e/0x21a
[ 1986.897332]  [&lt;c01479b8&gt;] ? print_irq_inversion_bug+0x172/0x172
[ 1986.897341]  [&lt;c014855c&gt;] mark_lock+0x27f/0x483
[ 1986.897349]  [&lt;c0148d88&gt;] __lock_acquire+0x628/0x1472
[ 1986.897358]  [&lt;c0149fae&gt;] lock_acquire+0x47/0x5e
[ 1986.897366]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897384]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897397]  [&lt;c043b5ef&gt;] mutex_lock_nested+0x35/0x26f
[ 1986.897409]  [&lt;c01f8bd4&gt;] ? reiserfs_write_lock+0x20/0x2a
[ 1986.897421]  [&lt;c01f8bd4&gt;] reiserfs_write_lock+0x20/0x2a
[ 1986.897433]  [&lt;c01e2edd&gt;] map_block_for_writepage+0xc9/0x590
[ 1986.897448]  [&lt;c01b1706&gt;] ? create_empty_buffers+0x33/0x8f
[ 1986.897461]  [&lt;c0121124&gt;] ? get_parent_ip+0xb/0x31
[ 1986.897472]  [&lt;c043ef7f&gt;] ? sub_preempt_count+0x81/0x8e
[ 1986.897485]  [&lt;c043cae0&gt;] ? _raw_spin_unlock+0x27/0x3d
[ 1986.897496]  [&lt;c0121124&gt;] ? get_parent_ip+0xb/0x31
[ 1986.897508]  [&lt;c01e355d&gt;] reiserfs_writepage+0x1b9/0x3e7
[ 1986.897521]  [&lt;c0173b40&gt;] ? clear_page_dirty_for_io+0xcb/0xde
[ 1986.897533]  [&lt;c014a6e3&gt;] ? trace_hardirqs_on_caller+0x108/0x138
[ 1986.897546]  [&lt;c014a71e&gt;] ? trace_hardirqs_on+0xb/0xd
[ 1986.897559]  [&lt;c0177b38&gt;] shrink_page_list+0x34f/0x5e2
[ 1986.897572]  [&lt;c01780a7&gt;] shrink_inactive_list+0x172/0x22c
[ 1986.897585]  [&lt;c0178464&gt;] shrink_zone+0x303/0x3b1
[ 1986.897597]  [&lt;c043cae0&gt;] ? _raw_spin_unlock+0x27/0x3d
[ 1986.897611]  [&lt;c01788c9&gt;] kswapd+0x3b7/0x5f2

The deadlock shouldn't happen since we are doing that allocation in the
mount path, the filesystem is not available for any reclaim.  Still the
warning is annoying.

To solve this, acquire the lock later only where we need it, right before
calling reiserfs_read_locked_inode() that wants to lock to walk the tree.

Reported-by: Knut Petersen &lt;Knut_Petersen@t-online.de&gt;
Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: don't lock journal_init()</title>
<updated>2012-01-11T00:30:53+00:00</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2012-01-10T23:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=37c69b98d0dca54d9eb72226bbf2e211aaaf126e'/>
<id>37c69b98d0dca54d9eb72226bbf2e211aaaf126e</id>
<content type='text'>
journal_init() doesn't need the lock since no operation on the filesystem
is involved there.  journal_read() and get_list_bitmap() have yet to be
reviewed carefully though before removing the lock there.  Just keep the
it around these two calls for safety.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>
journal_init() doesn't need the lock since no operation on the filesystem
is involved there.  journal_read() and get_list_bitmap() have yet to be
reviewed carefully though before removing the lock there.  Just keep the
it around these two calls for safety.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: delay reiserfs lock until journal initialization</title>
<updated>2012-01-11T00:30:53+00:00</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2012-01-10T23:11:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f32485be8397ad811312bc055d2e2a5906bc7576'/>
<id>f32485be8397ad811312bc055d2e2a5906bc7576</id>
<content type='text'>
In the mount path, transactions that are made before journal
initialization don't involve the filesystem.  We can delay the reiserfs
lock until we play with the journal.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>
In the mount path, transactions that are made before journal
initialization don't involve the filesystem.  We can delay the reiserfs
lock until we play with the journal.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: delete comments referring to the BKL</title>
<updated>2012-01-11T00:30:53+00:00</updated>
<author>
<name>Davidlohr Bueso</name>
<email>dave@gnu.org</email>
</author>
<published>2012-01-10T23:11:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b18c1c6e0c90cbcd38ba879bd63a44c94e4f7301'/>
<id>b18c1c6e0c90cbcd38ba879bd63a44c94e4f7301</id>
<content type='text'>
Signed-off-by: Davidlohr Bueso &lt;dave@gnu.org&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&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>
Signed-off-by: Davidlohr Bueso &lt;dave@gnu.org&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs</title>
<updated>2012-01-09T20:51:21+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-01-09T20:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ac69e0928054ff29a5049902fb477f9c7605c773'/>
<id>ac69e0928054ff29a5049902fb477f9c7605c773</id>
<content type='text'>
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  ext2/3/4: delete unneeded includes of module.h
  ext{3,4}: Fix potential race when setversion ioctl updates inode
  udf: Mark LVID buffer as uptodate before marking it dirty
  ext3: Don't warn from writepage when readonly inode is spotted after error
  jbd: Remove j_barrier mutex
  reiserfs: Force inode evictions before umount to avoid crash
  reiserfs: Fix quota mount option parsing
  udf: Treat symlink component of type 2 as /
  udf: Fix deadlock when converting file from in-ICB one to normal one
  udf: Cleanup calling convention of inode_getblk()
  ext2: Fix error handling on inode bitmap corruption
  ext3: Fix error handling on inode bitmap corruption
  ext3: replace ll_rw_block with other functions
  ext3: NULL dereference in ext3_evict_inode()
  jbd: clear revoked flag on buffers before a new transaction started
  ext3: call ext3_mark_recovery_complete() when recovery is really needed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  ext2/3/4: delete unneeded includes of module.h
  ext{3,4}: Fix potential race when setversion ioctl updates inode
  udf: Mark LVID buffer as uptodate before marking it dirty
  ext3: Don't warn from writepage when readonly inode is spotted after error
  jbd: Remove j_barrier mutex
  reiserfs: Force inode evictions before umount to avoid crash
  reiserfs: Fix quota mount option parsing
  udf: Treat symlink component of type 2 as /
  udf: Fix deadlock when converting file from in-ICB one to normal one
  udf: Cleanup calling convention of inode_getblk()
  ext2: Fix error handling on inode bitmap corruption
  ext3: Fix error handling on inode bitmap corruption
  ext3: replace ll_rw_block with other functions
  ext3: NULL dereference in ext3_evict_inode()
  jbd: clear revoked flag on buffers before a new transaction started
  ext3: call ext3_mark_recovery_complete() when recovery is really needed
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: Force inode evictions before umount to avoid crash</title>
<updated>2012-01-09T12:52:09+00:00</updated>
<author>
<name>Jeff Mahoney</name>
<email>jeffm@suse.com</email>
</author>
<published>2011-12-21T20:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a9e36da655e54545c3289b2a0700b5c443de0edd'/>
<id>a9e36da655e54545c3289b2a0700b5c443de0edd</id>
<content type='text'>
This patch fixes a crash in reiserfs_delete_xattrs during umount.

When shrink_dcache_for_umount clears the dcache from
generic_shutdown_super, delayed evictions are forced to disk. If an
evicted inode has extended attributes associated with it, it will
need to walk the xattr tree to locate and remove them.

But since shrink_dcache_for_umount will BUG if it encounters active
dentries, the xattr tree must be released before it's called or it will
crash during every umount.

This patch forces the evictions to occur before generic_shutdown_super
by calling shrink_dcache_sb first. The additional evictions caused
by the removal of each associated xattr file and dir will be automatically
handled as they're added to the LRU list.

CC: reiserfs-devel@vger.kernel.org
CC: stable@kernel.org
Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a crash in reiserfs_delete_xattrs during umount.

When shrink_dcache_for_umount clears the dcache from
generic_shutdown_super, delayed evictions are forced to disk. If an
evicted inode has extended attributes associated with it, it will
need to walk the xattr tree to locate and remove them.

But since shrink_dcache_for_umount will BUG if it encounters active
dentries, the xattr tree must be released before it's called or it will
crash during every umount.

This patch forces the evictions to occur before generic_shutdown_super
by calling shrink_dcache_sb first. The additional evictions caused
by the removal of each associated xattr file and dir will be automatically
handled as they're added to the LRU list.

CC: reiserfs-devel@vger.kernel.org
CC: stable@kernel.org
Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: Fix quota mount option parsing</title>
<updated>2012-01-09T12:52:09+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2011-12-21T16:35:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a06d789b424190e9f59da391681f908486db2554'/>
<id>a06d789b424190e9f59da391681f908486db2554</id>
<content type='text'>
When jqfmt mount option is not specified on remount, we mistakenly clear
s_jquota_fmt value stored in superblock. Fix the problem.

CC: stable@kernel.org
CC: reiserfs-devel@vger.kernel.org
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When jqfmt mount option is not specified on remount, we mistakenly clear
s_jquota_fmt value stored in superblock. Fix the problem.

CC: stable@kernel.org
CC: reiserfs-devel@vger.kernel.org
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: Properly display mount options in /proc/mounts</title>
<updated>2012-01-07T04:20:13+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2011-12-21T19:17:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c3aa077648e147783a7a53b409578234647db853'/>
<id>c3aa077648e147783a7a53b409578234647db853</id>
<content type='text'>
Make reiserfs properly display mount options in /proc/mounts.

CC: reiserfs-devel@vger.kernel.org
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make reiserfs properly display mount options in /proc/mounts.

CC: reiserfs-devel@vger.kernel.org
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs: prefer -&gt;dentry-&gt;d_sb to -&gt;mnt-&gt;mnt_sb</title>
<updated>2012-01-07T04:16:53+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2011-12-07T23:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d8c9584ea2a92879f471fd3a2be3af6c534fb035'/>
<id>d8c9584ea2a92879f471fd3a2be3af6c534fb035</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reiserfs: propagate umode_t</title>
<updated>2012-01-04T03:55:00+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2011-07-26T06:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8e0718924e7d7eaf6104e54aeaeda477570e1e06'/>
<id>8e0718924e7d7eaf6104e54aeaeda477570e1e06</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
