<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/fs/ext4/balloc.c, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2015-06-08T15:18:52+00:00</updated>
<entry>
<title>ext4: verify block bitmap even after fresh initialization</title>
<updated>2015-06-08T15:18:52+00:00</updated>
<author>
<name>Lukas Czerner</name>
<email>lczerner@redhat.com</email>
</author>
<published>2015-06-08T15:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=41e5b7ed3e9597ccc46b6affc81872e6370936d9'/>
<id>urn:sha1:41e5b7ed3e9597ccc46b6affc81872e6370936d9</id>
<content type='text'>
If we want to rely on the buffer_verified() flag of the block bitmap
buffer, we have to set it consistently. However currently if we're
initializing uninitialized block bitmap in
ext4_read_block_bitmap_nowait() we're not going to set buffer verified
at all.

We can do this by simply setting the flag on the buffer, but I think
it's actually better to run ext4_validate_block_bitmap() to make sure
that what we did in the ext4_init_block_bitmap() is right.

So run ext4_validate_block_bitmap() even after the block bitmap
initialization. Also bail out early from ext4_validate_block_bitmap() if
we see corrupt bitmap, since we already know it's corrupt and we do not
need to verify that.

Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: remove unnecessary lock/unlock of i_block_reservation_lock</title>
<updated>2015-04-03T04:02:53+00:00</updated>
<author>
<name>Maurizio Lombardi</name>
<email>mlombard@redhat.com</email>
</author>
<published>2015-04-03T04:02:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=5a4f3145aa685ddc2caf424763d42d3eaaebbc6f'/>
<id>urn:sha1:5a4f3145aa685ddc2caf424763d42d3eaaebbc6f</id>
<content type='text'>
This is a leftover of commit 71d4f7d032149b935a26eb3ff85c6c837f3714e1

Signed-off-by: Maurizio Lombardi &lt;mlombard@redhat.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reviewed-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
</content>
</entry>
<entry>
<title>ext4: remove unused header files</title>
<updated>2015-04-03T03:47:42+00:00</updated>
<author>
<name>Sheng Yong</name>
<email>shengyong1@huawei.com</email>
</author>
<published>2015-04-03T03:47:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=72b8e0f9fa8aee7e623808af1a5f33b70ebcb2c7'/>
<id>urn:sha1:72b8e0f9fa8aee7e623808af1a5f33b70ebcb2c7</id>
<content type='text'>
Remove unused header files and header files which are included in
ext4.h.

Signed-off-by: Sheng Yong &lt;shengyong1@huawei.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: move error report out of atomic context in ext4_init_block_bitmap()</title>
<updated>2014-10-13T07:42:12+00:00</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2014-10-13T07:42:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=aef4885ae14f1df75b58395c5314d71f613d26d9'/>
<id>urn:sha1:aef4885ae14f1df75b58395c5314d71f613d26d9</id>
<content type='text'>
Error report likely result in IO so it is bad idea to do it from
atomic context.

This patch should fix following issue:

BUG: sleeping function called from invalid context at include/linux/buffer_head.h:349
in_atomic(): 1, irqs_disabled(): 0, pid: 137, name: kworker/u128:1
5 locks held by kworker/u128:1/137:
 #0:  ("writeback"){......}, at: [&lt;ffffffff81085618&gt;] process_one_work+0x228/0x4d0
 #1:  ((&amp;(&amp;wb-&gt;dwork)-&gt;work)){......}, at: [&lt;ffffffff81085618&gt;] process_one_work+0x228/0x4d0
 #2:  (jbd2_handle){......}, at: [&lt;ffffffff81242622&gt;] start_this_handle+0x712/0x7b0
 #3:  (&amp;ei-&gt;i_data_sem){......}, at: [&lt;ffffffff811fa387&gt;] ext4_map_blocks+0x297/0x430
 #4:  (&amp;(&amp;bgl-&gt;locks[i].lock)-&gt;rlock){......}, at: [&lt;ffffffff811f3180&gt;] ext4_read_block_bitmap_nowait+0x5d0/0x630
CPU: 3 PID: 137 Comm: kworker/u128:1 Not tainted 3.17.0-rc2-00184-g82752e4 #165
Hardware name: Intel Corporation W2600CR/W2600CR, BIOS SE5C600.86B.99.99.x028.061320111235 06/13/2011
Workqueue: writeback bdi_writeback_workfn (flush-1:0)
 0000000000000411 ffff880813777288 ffffffff815c7fdc ffff880813777288
 ffff880813a8bba0 ffff8808137772a8 ffffffff8108fb30 ffff880803e01e38
 ffff880803e01e38 ffff8808137772c8 ffffffff811a8d53 ffff88080ecc6000
Call Trace:
 [&lt;ffffffff815c7fdc&gt;] dump_stack+0x51/0x6d
 [&lt;ffffffff8108fb30&gt;] __might_sleep+0xf0/0x100
 [&lt;ffffffff811a8d53&gt;] __sync_dirty_buffer+0x43/0xe0
 [&lt;ffffffff811a8e03&gt;] sync_dirty_buffer+0x13/0x20
 [&lt;ffffffff8120f581&gt;] ext4_commit_super+0x1d1/0x230
 [&lt;ffffffff8120fa03&gt;] save_error_info+0x23/0x30
 [&lt;ffffffff8120fd06&gt;] __ext4_error+0xb6/0xd0
 [&lt;ffffffff8120f260&gt;] ? ext4_group_desc_csum+0x140/0x190
 [&lt;ffffffff811f2d8c&gt;] ext4_read_block_bitmap_nowait+0x1dc/0x630
 [&lt;ffffffff8122e23a&gt;] ext4_mb_init_cache+0x21a/0x8f0
 [&lt;ffffffff8113ae95&gt;] ? lru_cache_add+0x55/0x60
 [&lt;ffffffff8112e16c&gt;] ? add_to_page_cache_lru+0x6c/0x80
 [&lt;ffffffff8122eaa0&gt;] ext4_mb_init_group+0x190/0x280
 [&lt;ffffffff8122ec51&gt;] ext4_mb_good_group+0xc1/0x190
 [&lt;ffffffff8123309a&gt;] ext4_mb_regular_allocator+0x17a/0x410
 [&lt;ffffffff8122c821&gt;] ? ext4_mb_use_preallocated+0x31/0x380
 [&lt;ffffffff81233535&gt;] ? ext4_mb_new_blocks+0x205/0x8e0
 [&lt;ffffffff8116ed5c&gt;] ? kmem_cache_alloc+0xfc/0x180
 [&lt;ffffffff812335b0&gt;] ext4_mb_new_blocks+0x280/0x8e0
 [&lt;ffffffff8116f2c4&gt;] ? __kmalloc+0x144/0x1c0
 [&lt;ffffffff81221797&gt;] ? ext4_find_extent+0x97/0x320
 [&lt;ffffffff812257f4&gt;] ext4_ext_map_blocks+0xbc4/0x1050
 [&lt;ffffffff811fa387&gt;] ? ext4_map_blocks+0x297/0x430
 [&lt;ffffffff811fa3ab&gt;] ext4_map_blocks+0x2bb/0x430
 [&lt;ffffffff81200e43&gt;] ? ext4_init_io_end+0x23/0x50
 [&lt;ffffffff811feb44&gt;] ext4_writepages+0x564/0xaf0
 [&lt;ffffffff815cde3b&gt;] ? _raw_spin_unlock+0x2b/0x40
 [&lt;ffffffff810ac7bd&gt;] ? lock_release_non_nested+0x2fd/0x3c0
 [&lt;ffffffff811a009e&gt;] ? writeback_sb_inodes+0x10e/0x490
 [&lt;ffffffff811a009e&gt;] ? writeback_sb_inodes+0x10e/0x490
 [&lt;ffffffff811377e3&gt;] do_writepages+0x23/0x40
 [&lt;ffffffff8119c8ce&gt;] __writeback_single_inode+0x9e/0x280
 [&lt;ffffffff811a026b&gt;] writeback_sb_inodes+0x2db/0x490
 [&lt;ffffffff811a0664&gt;] wb_writeback+0x174/0x2d0
 [&lt;ffffffff810ac359&gt;] ? lock_release_holdtime+0x29/0x190
 [&lt;ffffffff811a0863&gt;] wb_do_writeback+0xa3/0x200
 [&lt;ffffffff811a0a40&gt;] bdi_writeback_workfn+0x80/0x230
 [&lt;ffffffff81085618&gt;] ? process_one_work+0x228/0x4d0
 [&lt;ffffffff810856cd&gt;] process_one_work+0x2dd/0x4d0
 [&lt;ffffffff81085618&gt;] ? process_one_work+0x228/0x4d0
 [&lt;ffffffff81085c1d&gt;] worker_thread+0x35d/0x460
 [&lt;ffffffff810858c0&gt;] ? process_one_work+0x4d0/0x4d0
 [&lt;ffffffff810858c0&gt;] ? process_one_work+0x4d0/0x4d0
 [&lt;ffffffff8108a885&gt;] kthread+0xf5/0x100
 [&lt;ffffffff810990e5&gt;] ? local_clock+0x25/0x30
 [&lt;ffffffff8108a790&gt;] ? __init_kthread_worker+0x70/0x70
 [&lt;ffffffff815ce2ac&gt;] ret_from_fork+0x7c/0xb0
 [&lt;ffffffff8108a790&gt;] ? __init_kthread_work

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>ext4: prepare to drop EXT4_STATE_DELALLOC_RESERVED</title>
<updated>2014-09-04T22:07:25+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-09-04T22:07:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e3cf5d5d9a86df1c5e413bdd3725c25a16ff854c'/>
<id>urn:sha1:e3cf5d5d9a86df1c5e413bdd3725c25a16ff854c</id>
<content type='text'>
The EXT4_STATE_DELALLOC_RESERVED flag was originally implemented
because it was too hard to make sure the mballoc and get_block flags
could be reliably passed down through all of the codepaths that end up
calling ext4_mb_new_blocks().

Since then, we have mb_flags passed down through most of the code
paths, so getting rid of EXT4_STATE_DELALLOC_RESERVED isn't as tricky
as it used to.

This commit plumbs in the last of what is required, and then adds a
WARN_ON check to make sure we haven't missed anything.  If this passes
a full regression test run, we can then drop
EXT4_STATE_DELALLOC_RESERVED.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext4: remove metadata reservation checks</title>
<updated>2014-07-15T10:02:38+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-07-15T10:02:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=71d4f7d032149b935a26eb3ff85c6c837f3714e1'/>
<id>urn:sha1:71d4f7d032149b935a26eb3ff85c6c837f3714e1</id>
<content type='text'>
Commit 27dd43854227b ("ext4: introduce reserved space") reserves 2% of
the file system space to make sure metadata allocations will always
succeed.  Given that, tracking the reservation of metadata blocks is
no longer necessary.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: decrement free clusters/inodes counters when block group declared bad</title>
<updated>2014-06-26T14:11:53+00:00</updated>
<author>
<name>Namjae Jeon</name>
<email>namjae.jeon@samsung.com</email>
</author>
<published>2014-06-26T14:11:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e43bb4e612b402a631bc549ac496f78bc7a79438'/>
<id>urn:sha1:e43bb4e612b402a631bc549ac496f78bc7a79438</id>
<content type='text'>
We should decrement free clusters counter when block bitmap is marked
as corrupt and free inodes counter when the allocation bitmap is
marked as corrupt to avoid misunderstanding due to incorrect available
size in statfs result.  User can get immediately ENOSPC error from
write begin without reaching for the writepages.

Cc: Darrick J. Wong&lt;darrick.wong@oracle.com&gt;
Reported-by: Amit Sahrawat &lt;amit.sahrawat83@gmail.com&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Ashish Sangwan &lt;a.sangwan@samsung.com&gt;
</content>
</entry>
<entry>
<title>ext4: make local functions static</title>
<updated>2014-05-12T14:50:23+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>stephen@networkplumber.org</email>
</author>
<published>2014-05-12T14:50:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c197855ea14175a25003c276824689e8ba318e53'/>
<id>urn:sha1:c197855ea14175a25003c276824689e8ba318e53</id>
<content type='text'>
I have been running make namespacecheck to look for unneeded globals, and
found these in ext4.

Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: fix block bitmap validation when bigalloc, ^flex_bg</title>
<updated>2014-05-12T14:17:55+00:00</updated>
<author>
<name>Darrick J. Wong</name>
<email>darrick.wong@oracle.com</email>
</author>
<published>2014-05-12T14:17:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e674e5cbd0942b42a12106ac0be8330f4301bef4'/>
<id>urn:sha1:e674e5cbd0942b42a12106ac0be8330f4301bef4</id>
<content type='text'>
On a bigalloc,^flex_bg filesystem, the ext4_valid_block_bitmap
function fails to convert from blocks to clusters when spot-checking
the validity of the bitmap block that we've just read from disk.  This
causes ext4 to think that the bitmap is garbage, which results in the
block group being taken offline when it's not necessary.  Add in the
necessary EXT4_B2C() calls to perform the conversions.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: fix block bitmap initialization under sparse_super2</title>
<updated>2014-05-12T14:16:06+00:00</updated>
<author>
<name>Darrick J. Wong</name>
<email>darrick.wong@oracle.com</email>
</author>
<published>2014-05-12T14:16:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=1beeef1b5643a16a07a465632a2cf984a4ef2119'/>
<id>urn:sha1:1beeef1b5643a16a07a465632a2cf984a4ef2119</id>
<content type='text'>
The ext4_bg_has_super() function doesn't know about the new rules for
where backup superblocks go on a sparse_super2 filesystem.  Therefore,
block bitmap initialization doesn't know that it shouldn't reserve
space for backups in groups that are never going to contain backups.
The result of this is e2fsck complaining about the block bitmap being
incorrect (fortunately not in a way that results in cross-linked
files), so fix the whole thing.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
</feed>
