<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/jbd2/revoke.c, branch linux-4.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-02-23T04:19:09Z</updated>
<entry>
<title>jbd2: unify revoke and tag block checksum handling</title>
<updated>2016-02-23T04:19:09Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2016-02-23T04:19:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1101cd4d13ba2f42c5da4c1b9081f35a73b5df31'/>
<id>urn:sha1:1101cd4d13ba2f42c5da4c1b9081f35a73b5df31</id>
<content type='text'>
Revoke and tag descriptor blocks are just different kinds of descriptor
blocks and thus have checksum in the same place. Unify computation and
checking of checksums for these.

Reviewed-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: factor out common descriptor block initialization</title>
<updated>2016-02-23T04:17:15Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2016-02-23T04:17:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32ab671599a89534f37e97d146c27690e371b661'/>
<id>urn:sha1:32ab671599a89534f37e97d146c27690e371b661</id>
<content type='text'>
Descriptor block header is initialized in several places. Factor out the
common code into jbd2_journal_get_descriptor_buffer().

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: remove unnecessary arguments of jbd2_journal_write_revoke_records</title>
<updated>2016-02-23T04:07:30Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2016-02-23T04:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9bcf976cb8b86eb40e0c0b495a14e4cb967b9c6e'/>
<id>urn:sha1:9bcf976cb8b86eb40e0c0b495a14e4cb967b9c6e</id>
<content type='text'>
jbd2_journal_write_revoke_records() takes journal pointer and write_op,
although journal can be obtained from the passed transaction and
write_op is always WRITE_SYNC. Remove these superfluous arguments.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: clean up feature test macros with predicate functions</title>
<updated>2015-10-17T20:18:45Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2015-10-17T20:18:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=56316a0d28f251dae6a3bc2b6d50e7c25389871f'/>
<id>urn:sha1:56316a0d28f251dae6a3bc2b6d50e7c25389871f</id>
<content type='text'>
Create separate predicate functions to test/set/clear feature flags,
thereby replacing the wordy old macros.  Furthermore, clean out the
places where we open-coded feature tests.

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>jbd2: get rid of open coded allocation retry loop</title>
<updated>2015-06-15T19:45:58Z</updated>
<author>
<name>Michal Hocko</name>
</author>
<published>2015-06-15T19:45:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b506b1035326543b7cd2d768449ccbd1ef3f368'/>
<id>urn:sha1:7b506b1035326543b7cd2d768449ccbd1ef3f368</id>
<content type='text'>
insert_revoke_hash does an open coded endless allocation loop if
journal_oom_retry is true. It doesn't implement any allocation fallback
strategy between the retries, though. The memory allocator doesn't know
about the never fail requirement so it cannot potentially help to move
on with the allocation (e.g. use memory reserves).

Get rid of the retry loop and use __GFP_NOFAIL instead. We will lose the
debugging message but I am not sure it is anyhow helpful.

Do the same for journal_alloc_journal_head which is doing a similar
thing.

Signed-off-by: Michal Hocko &lt;mhocko@suse.cz&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: fix r_count overflows leading to buffer overflow in journal recovery</title>
<updated>2015-05-14T23:11:50Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2015-05-14T23:11:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e531d0bceb402e643a4499de40dd3fa39d8d2e43'/>
<id>urn:sha1:e531d0bceb402e643a4499de40dd3fa39d8d2e43</id>
<content type='text'>
The journal revoke block recovery code does not check r_count for
sanity, which means that an evil value of r_count could result in
the kernel reading off the end of the revoke table and into whatever
garbage lies beyond.  This could crash the kernel, so fix that.

However, in testing this fix, I discovered that the code to write
out the revoke tables also was not correctly checking to see if the
block was full -- the current offset check is fine so long as the
revoke table space size is a multiple of the record size, but this
is not true when either journal_csum_v[23] are set.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>jbd2: use a better hash function for the revoke table</title>
<updated>2014-10-30T14:53:17Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2014-10-30T14:53:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d48458d4a768cece43f80a081a26cf912877da9c'/>
<id>urn:sha1:d48458d4a768cece43f80a081a26cf912877da9c</id>
<content type='text'>
The old hash function didn't work well for 64-bit block numbers, and
used undefined (negative) shift right behavior.  Use the generic
64-bit hash function instead.

Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Reported-by: Andrey Ryabinin &lt;a.ryabinin@samsung.com&gt;
</content>
</entry>
<entry>
<title>jbd2: fix descriptor block size handling errors with journal_csum</title>
<updated>2014-08-29T02:22:29Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2014-08-27T22:40:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db9ee220361de03ee86388f9ea5e529eaad5323c'/>
<id>urn:sha1:db9ee220361de03ee86388f9ea5e529eaad5323c</id>
<content type='text'>
It turns out that there are some serious problems with the on-disk
format of journal checksum v2.  The foremost is that the function to
calculate descriptor tag size returns sizes that are too big.  This
causes alignment issues on some architectures and is compounded by the
fact that some parts of jbd2 use the structure size (incorrectly) to
determine the presence of a 64bit journal instead of checking the
feature flags.

Therefore, introduce journal checksum v3, which enlarges the
descriptor block tag format to allow for full 32-bit checksums of
journal blocks, fix the journal tag function to return the correct
sizes, and fix the jbd2 recovery code to use feature flags to
determine 64bitness.

Add a few function helpers so we don't have to open-code quite so
many pieces.

Switching to a 16-byte block size was found to increase journal size
overhead by a maximum of 0.1%, to convert a 32-bit journal with no
checksumming to a 32-bit journal with checksum v3 enabled.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reported-by: TR Reardon &lt;thomas_reardon@hotmail.com&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>jbd2: remove journal_head from descriptor buffers</title>
<updated>2013-06-04T16:06:01Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2013-06-04T16:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e5a120aeb57f40ae568a5ca1dd6ace53d0213582'/>
<id>urn:sha1:e5a120aeb57f40ae568a5ca1dd6ace53d0213582</id>
<content type='text'>
Similarly as for metadata buffers, also log descriptor buffers don't
really need the journal head. So strip it and remove BJ_LogCtl list.

Reviewed-by: Zheng Liu &lt;wenqing.lz@taobao.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>jbd2: checksum revocation blocks</title>
<updated>2012-05-27T12:08:24Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2012-05-27T12:08:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=42a7106de636ebf9c0b93d25b4230e14f5f2682e'/>
<id>urn:sha1:42a7106de636ebf9c0b93d25b4230e14f5f2682e</id>
<content type='text'>
Compute and verify revoke blocks inside the journal.

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