<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/fs/ext4, branch linux-3.15.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-3.15.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-3.15.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2014-07-17T23:23:16+00:00</updated>
<entry>
<title>ext4: fix a potential deadlock in __ext4_es_shrink()</title>
<updated>2014-07-17T23:23:16+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-12T19:32:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=da17d1e04ff63429b90e5df483fdd70e32d3f968'/>
<id>urn:sha1:da17d1e04ff63429b90e5df483fdd70e32d3f968</id>
<content type='text'>
commit 3f1f9b851311a76226140b55b1ea22111234a7c2 upstream.

This fixes the following lockdep complaint:

[ INFO: possible circular locking dependency detected ]
3.16.0-rc2-mm1+ #7 Tainted: G           O
-------------------------------------------------------
kworker/u24:0/4356 is trying to acquire lock:
 (&amp;(&amp;sbi-&gt;s_es_lru_lock)-&gt;rlock){+.+.-.}, at: [&lt;ffffffff81285fff&gt;] __ext4_es_shrink+0x4f/0x2e0

but task is already holding lock:
 (&amp;ei-&gt;i_es_lock){++++-.}, at: [&lt;ffffffff81286961&gt;] ext4_es_insert_extent+0x71/0x180

which lock already depends on the new lock.

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&amp;ei-&gt;i_es_lock);
                               lock(&amp;(&amp;sbi-&gt;s_es_lru_lock)-&gt;rlock);
                               lock(&amp;ei-&gt;i_es_lock);
  lock(&amp;(&amp;sbi-&gt;s_es_lru_lock)-&gt;rlock);

 *** DEADLOCK ***

6 locks held by kworker/u24:0/4356:
 #0:  ("writeback"){.+.+.+}, at: [&lt;ffffffff81071d00&gt;] process_one_work+0x180/0x560
 #1:  ((&amp;(&amp;wb-&gt;dwork)-&gt;work)){+.+.+.}, at: [&lt;ffffffff81071d00&gt;] process_one_work+0x180/0x560
 #2:  (&amp;type-&gt;s_umount_key#22){++++++}, at: [&lt;ffffffff811a9c74&gt;] grab_super_passive+0x44/0x90
 #3:  (jbd2_handle){+.+...}, at: [&lt;ffffffff812979f9&gt;] start_this_handle+0x189/0x5f0
 #4:  (&amp;ei-&gt;i_data_sem){++++..}, at: [&lt;ffffffff81247062&gt;] ext4_map_blocks+0x132/0x550
 #5:  (&amp;ei-&gt;i_es_lock){++++-.}, at: [&lt;ffffffff81286961&gt;] ext4_es_insert_extent+0x71/0x180

stack backtrace:
CPU: 0 PID: 4356 Comm: kworker/u24:0 Tainted: G           O   3.16.0-rc2-mm1+ #7
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Workqueue: writeback bdi_writeback_workfn (flush-253:0)
 ffffffff8213dce0 ffff880014b07538 ffffffff815df0bb 0000000000000007
 ffffffff8213e040 ffff880014b07588 ffffffff815db3dd ffff880014b07568
 ffff880014b07610 ffff88003b868930 ffff88003b868908 ffff88003b868930
Call Trace:
 [&lt;ffffffff815df0bb&gt;] dump_stack+0x4e/0x68
 [&lt;ffffffff815db3dd&gt;] print_circular_bug+0x1fb/0x20c
 [&lt;ffffffff810a7a3e&gt;] __lock_acquire+0x163e/0x1d00
 [&lt;ffffffff815e89dc&gt;] ? retint_restore_args+0xe/0xe
 [&lt;ffffffff815ddc7b&gt;] ? __slab_alloc+0x4a8/0x4ce
 [&lt;ffffffff81285fff&gt;] ? __ext4_es_shrink+0x4f/0x2e0
 [&lt;ffffffff810a8707&gt;] lock_acquire+0x87/0x120
 [&lt;ffffffff81285fff&gt;] ? __ext4_es_shrink+0x4f/0x2e0
 [&lt;ffffffff8128592d&gt;] ? ext4_es_free_extent+0x5d/0x70
 [&lt;ffffffff815e6f09&gt;] _raw_spin_lock+0x39/0x50
 [&lt;ffffffff81285fff&gt;] ? __ext4_es_shrink+0x4f/0x2e0
 [&lt;ffffffff8119760b&gt;] ? kmem_cache_alloc+0x18b/0x1a0
 [&lt;ffffffff81285fff&gt;] __ext4_es_shrink+0x4f/0x2e0
 [&lt;ffffffff812869b8&gt;] ext4_es_insert_extent+0xc8/0x180
 [&lt;ffffffff812470f4&gt;] ext4_map_blocks+0x1c4/0x550
 [&lt;ffffffff8124c4c4&gt;] ext4_writepages+0x6d4/0xd00
	...

Reported-by: Minchan Kim &lt;minchan@kernel.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reported-by: Minchan Kim &lt;minchan@kernel.org&gt;
Cc: Zheng Liu &lt;gnehzuil.liu@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: revert commit which was causing fs corruption after journal replays</title>
<updated>2014-07-17T23:23:16+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-11T17:55:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9a87ea37bc551c2aecf978b55f8a78f71b7b80da'/>
<id>urn:sha1:9a87ea37bc551c2aecf978b55f8a78f71b7b80da</id>
<content type='text'>
commit f9ae9cf5d72b3926ca48ea60e15bdbb840f42372 upstream.

Commit 007649375f6af2 ("ext4: initialize multi-block allocator before
checking block descriptors") causes the block group descriptor's count
of the number of free blocks to become inconsistent with the number of
free blocks in the allocation bitmap.  This is a harmless form of fs
corruption, but it causes the kernel to potentially remount the file
system read-only, or to panic, depending on the file systems's error
behavior.

Thanks to Eric Whitney for his tireless work to reproduce and to find
the guilty commit.

Fixes: 007649375f6af2 ("ext4: initialize multi-block allocator before checking block descriptors"

Reported-by: David Jander &lt;david@protonic.nl&gt;
Reported-by: Matteo Croce &lt;technoboy85@gmail.com&gt;
Tested-by: Eric Whitney &lt;enwlinux@gmail.com&gt;
Suggested-by: Eric Whitney &lt;enwlinux@gmail.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: disable synchronous transaction batching if max_batch_time==0</title>
<updated>2014-07-17T23:23:16+00:00</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2014-07-05T23:18:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=480edc9475b340e0ff9077e3ef8f3e7e0be23196'/>
<id>urn:sha1:480edc9475b340e0ff9077e3ef8f3e7e0be23196</id>
<content type='text'>
commit 5dd214248f94d430d70e9230bda72f2654ac88a8 upstream.

The mount manpage says of the max_batch_time option,

	This optimization can be turned off entirely
	by setting max_batch_time to 0.

But the code doesn't do that.  So fix the code to do
that.

Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: clarify ext4_error message in ext4_mb_generate_buddy_error()</title>
<updated>2014-07-17T23:23:15+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-05T23:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=de10aa240c6115c8a8f9889412cea6d4f63b863e'/>
<id>urn:sha1:de10aa240c6115c8a8f9889412cea6d4f63b863e</id>
<content type='text'>
commit 94d4c066a4ff170a2671b1a9b153febbf36796f6 upstream.

We are spending a lot of time explaining to users what this error
means.  Let's try to improve the message to avoid this problem.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: clarify error count warning messages</title>
<updated>2014-07-17T23:23:15+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-05T22:40:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=fe412959098d4292db0ab215ef3dfb22ae4ec621'/>
<id>urn:sha1:fe412959098d4292db0ab215ef3dfb22ae4ec621</id>
<content type='text'>
commit ae0f78de2c43b6fadd007c231a352b13b5be8ed2 upstream.

Make it clear that values printed are times, and that it is error
since last fsck. Also add note about fsck version required.

Signed-off-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reviewed-by: Andreas Dilger &lt;adilger@dilger.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: fix unjournalled bg descriptor while initializing inode bitmap</title>
<updated>2014-07-17T23:23:15+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-05T20:28:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4dc3dd7aceb3d77d14ee798dbf3afde357e4bdb0'/>
<id>urn:sha1:4dc3dd7aceb3d77d14ee798dbf3afde357e4bdb0</id>
<content type='text'>
commit 61c219f5814277ecb71d64cb30297028d6665979 upstream.

The first time that we allocate from an uninitialized inode allocation
bitmap, if the block allocation bitmap is also uninitalized, we need
to get write access to the block group descriptor before we start
modifying the block group descriptor flags and updating the free block
count, etc.  Otherwise, there is the potential of a bad journal
checksum (if journal checksums are enabled), and of the file system
becoming inconsistent if we crash at exactly the wrong time.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: Fix hole punching for files with indirect blocks</title>
<updated>2014-07-09T18:21:30+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2014-06-26T16:30:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4612fe1bc12e005be050f0eb5a0504f03aa92b6f'/>
<id>urn:sha1:4612fe1bc12e005be050f0eb5a0504f03aa92b6f</id>
<content type='text'>
commit a93cd4cf86466caa49cfe64607bea7f0bde3f916 upstream.

Hole punching code for files with indirect blocks wrongly computed
number of blocks which need to be cleared when traversing the indirect
block tree. That could result in punching more blocks than actually
requested and thus effectively cause a data loss. For example:

fallocate -n -p 10240000 4096

will punch the range 10240000 - 12632064 instead of the range 1024000 -
10244096. Fix the calculation.

Fixes: 8bad6fc813a3a5300f51369c39d315679fd88c72
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: Fix buffer double free in ext4_alloc_branch()</title>
<updated>2014-07-09T18:21:30+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2014-06-16T03:46:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=766b962fc5c3599b810776b7c7c79922cd494cbf'/>
<id>urn:sha1:766b962fc5c3599b810776b7c7c79922cd494cbf</id>
<content type='text'>
commit c5c7b8ddfbf8cb3b2291e515a34ab1b8982f5a2d upstream.

Error recovery in ext4_alloc_branch() calls ext4_forget() even for
buffer corresponding to indirect block it did not allocate. This leads
to brelse() being called twice for that buffer (once from ext4_forget()
and once from cleanup in ext4_ind_map_blocks()) leading to buffer use
count misaccounting. Eventually (but often much later because there
are other users of the buffer) we will see messages like:
VFS: brelse: Trying to free free buffer

Another manifestation of this problem is an error:
JBD2 unexpected failure: jbd2_journal_revoke: !buffer_revoked(bh);
inconsistent data on disk

The fix is easy - don't forget buffer we did not allocate. Also add an
explanatory comment because the indexing at ext4_alloc_branch() is
somewhat subtle.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: fix wrong assert in ext4_mb_normalize_request()</title>
<updated>2014-07-01T03:13:56+00:00</updated>
<author>
<name>Maurizio Lombardi</name>
<email>mlombard@redhat.com</email>
</author>
<published>2014-05-27T16:48:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=feb62c88c9dc4f0ed3e04b1d24fd1812d78b9ddc'/>
<id>urn:sha1:feb62c88c9dc4f0ed3e04b1d24fd1812d78b9ddc</id>
<content type='text'>
commit b5b60778558cafad17bbcbf63e0310bd3c68eb17 upstream.

The variable "size" is expressed as number of blocks and not as
number of clusters, this could trigger a kernel panic when using
ext4 with the size of a cluster different from the size of a block.

Signed-off-by: Maurizio Lombardi &lt;mlombard@redhat.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: fix ZERO_RANGE test failure in data journalling</title>
<updated>2014-07-01T03:13:56+00:00</updated>
<author>
<name>Namjae Jeon</name>
<email>namjae.jeon@samsung.com</email>
</author>
<published>2014-05-27T16:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=59bc864486f20859e51b2878686fb86cfd57384c'/>
<id>urn:sha1:59bc864486f20859e51b2878686fb86cfd57384c</id>
<content type='text'>
commit e1ee60fd89670da61b0a4bda59f8ffb2b8abea63 upstream.

xfstests generic/091 is failing when mounting ext4 with data=journal.
I think that this regression is same problem that occurred prior to collapse
range issue. So ZERO RANGE also need to call ext4_force_commit as
collapse range.

Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Ashish Sangwan &lt;a.sangwan@samsung.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
