summaryrefslogtreecommitdiffstats
path: root/fs/jbd2/commit.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2016-02-22 23:19:09 -0500
committerTheodore Ts'o <tytso@mit.edu>2016-02-22 23:19:09 -0500
commit1101cd4d13ba2f42c5da4c1b9081f35a73b5df31 (patch)
treec7808f5f15396fba6e5e3e68209bbe4bf4cd073f /fs/jbd2/commit.c
parent32ab671599a89534f37e97d146c27690e371b661 (diff)
jbd2: unify revoke and tag block checksum handling
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 <darrick.wong@oracle.com> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/jbd2/commit.c')
-rw-r--r--fs/jbd2/commit.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index cf221f3d955a..ae832cd44dd8 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -317,22 +317,6 @@ static void write_tag_block(journal_t *j, journal_block_tag_t *tag,
317 tag->t_blocknr_high = cpu_to_be32((block >> 31) >> 1); 317 tag->t_blocknr_high = cpu_to_be32((block >> 31) >> 1);
318} 318}
319 319
320static void jbd2_descr_block_csum_set(journal_t *j,
321 struct buffer_head *bh)
322{
323 struct jbd2_journal_block_tail *tail;
324 __u32 csum;
325
326 if (!jbd2_journal_has_csum_v2or3(j))
327 return;
328
329 tail = (struct jbd2_journal_block_tail *)(bh->b_data + j->j_blocksize -
330 sizeof(struct jbd2_journal_block_tail));
331 tail->t_checksum = 0;
332 csum = jbd2_chksum(j, j->j_csum_seed, bh->b_data, j->j_blocksize);
333 tail->t_checksum = cpu_to_be32(csum);
334}
335
336static void jbd2_block_tag_csum_set(journal_t *j, journal_block_tag_t *tag, 320static void jbd2_block_tag_csum_set(journal_t *j, journal_block_tag_t *tag,
337 struct buffer_head *bh, __u32 sequence) 321 struct buffer_head *bh, __u32 sequence)
338{ 322{
@@ -714,7 +698,7 @@ void jbd2_journal_commit_transaction(journal_t *journal)
714 698
715 tag->t_flags |= cpu_to_be16(JBD2_FLAG_LAST_TAG); 699 tag->t_flags |= cpu_to_be16(JBD2_FLAG_LAST_TAG);
716 700
717 jbd2_descr_block_csum_set(journal, descriptor); 701 jbd2_descriptor_block_csum_set(journal, descriptor);
718start_journal_io: 702start_journal_io:
719 for (i = 0; i < bufs; i++) { 703 for (i = 0; i < bufs; i++) {
720 struct buffer_head *bh = wbuf[i]; 704 struct buffer_head *bh = wbuf[i];