|
@@ -142,8 +142,7 @@ static int journal_submit_commit_record(journal_t *journal,
|
|
tmp->h_commit_sec = cpu_to_be64(now.tv_sec);
|
|
tmp->h_commit_sec = cpu_to_be64(now.tv_sec);
|
|
tmp->h_commit_nsec = cpu_to_be32(now.tv_nsec);
|
|
tmp->h_commit_nsec = cpu_to_be32(now.tv_nsec);
|
|
|
|
|
|
- if (JBD2_HAS_COMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_COMPAT_CHECKSUM)) {
|
|
|
|
|
|
+ if (jbd2_has_feature_checksum(journal)) {
|
|
tmp->h_chksum_type = JBD2_CRC32_CHKSUM;
|
|
tmp->h_chksum_type = JBD2_CRC32_CHKSUM;
|
|
tmp->h_chksum_size = JBD2_CRC32_CHKSUM_SIZE;
|
|
tmp->h_chksum_size = JBD2_CRC32_CHKSUM_SIZE;
|
|
tmp->h_chksum[0] = cpu_to_be32(crc32_sum);
|
|
tmp->h_chksum[0] = cpu_to_be32(crc32_sum);
|
|
@@ -157,8 +156,7 @@ static int journal_submit_commit_record(journal_t *journal,
|
|
bh->b_end_io = journal_end_buffer_io_sync;
|
|
bh->b_end_io = journal_end_buffer_io_sync;
|
|
|
|
|
|
if (journal->j_flags & JBD2_BARRIER &&
|
|
if (journal->j_flags & JBD2_BARRIER &&
|
|
- !JBD2_HAS_INCOMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT))
|
|
|
|
|
|
+ !jbd2_has_feature_async_commit(journal))
|
|
ret = submit_bh(WRITE_SYNC | WRITE_FLUSH_FUA, bh);
|
|
ret = submit_bh(WRITE_SYNC | WRITE_FLUSH_FUA, bh);
|
|
else
|
|
else
|
|
ret = submit_bh(WRITE_SYNC, bh);
|
|
ret = submit_bh(WRITE_SYNC, bh);
|
|
@@ -317,7 +315,7 @@ static void write_tag_block(journal_t *j, journal_block_tag_t *tag,
|
|
unsigned long long block)
|
|
unsigned long long block)
|
|
{
|
|
{
|
|
tag->t_blocknr = cpu_to_be32(block & (u32)~0);
|
|
tag->t_blocknr = cpu_to_be32(block & (u32)~0);
|
|
- if (JBD2_HAS_INCOMPAT_FEATURE(j, JBD2_FEATURE_INCOMPAT_64BIT))
|
|
|
|
|
|
+ if (jbd2_has_feature_64bit(j))
|
|
tag->t_blocknr_high = cpu_to_be32((block >> 31) >> 1);
|
|
tag->t_blocknr_high = cpu_to_be32((block >> 31) >> 1);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -356,7 +354,7 @@ static void jbd2_block_tag_csum_set(journal_t *j, journal_block_tag_t *tag,
|
|
bh->b_size);
|
|
bh->b_size);
|
|
kunmap_atomic(addr);
|
|
kunmap_atomic(addr);
|
|
|
|
|
|
- if (JBD2_HAS_INCOMPAT_FEATURE(j, JBD2_FEATURE_INCOMPAT_CSUM_V3))
|
|
|
|
|
|
+ if (jbd2_has_feature_csum3(j))
|
|
tag3->t_checksum = cpu_to_be32(csum32);
|
|
tag3->t_checksum = cpu_to_be32(csum32);
|
|
else
|
|
else
|
|
tag->t_checksum = cpu_to_be16(csum32);
|
|
tag->t_checksum = cpu_to_be16(csum32);
|
|
@@ -730,8 +728,7 @@ start_journal_io:
|
|
/*
|
|
/*
|
|
* Compute checksum.
|
|
* Compute checksum.
|
|
*/
|
|
*/
|
|
- if (JBD2_HAS_COMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_COMPAT_CHECKSUM)) {
|
|
|
|
|
|
+ if (jbd2_has_feature_checksum(journal)) {
|
|
crc32_sum =
|
|
crc32_sum =
|
|
jbd2_checksum_data(crc32_sum, bh);
|
|
jbd2_checksum_data(crc32_sum, bh);
|
|
}
|
|
}
|
|
@@ -797,8 +794,7 @@ start_journal_io:
|
|
blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL);
|
|
blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL);
|
|
|
|
|
|
/* Done it all: now write the commit record asynchronously. */
|
|
/* Done it all: now write the commit record asynchronously. */
|
|
- if (JBD2_HAS_INCOMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) {
|
|
|
|
|
|
+ if (jbd2_has_feature_async_commit(journal)) {
|
|
err = journal_submit_commit_record(journal, commit_transaction,
|
|
err = journal_submit_commit_record(journal, commit_transaction,
|
|
&cbh, crc32_sum);
|
|
&cbh, crc32_sum);
|
|
if (err)
|
|
if (err)
|
|
@@ -889,8 +885,7 @@ start_journal_io:
|
|
commit_transaction->t_state = T_COMMIT_JFLUSH;
|
|
commit_transaction->t_state = T_COMMIT_JFLUSH;
|
|
write_unlock(&journal->j_state_lock);
|
|
write_unlock(&journal->j_state_lock);
|
|
|
|
|
|
- if (!JBD2_HAS_INCOMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) {
|
|
|
|
|
|
+ if (!jbd2_has_feature_async_commit(journal)) {
|
|
err = journal_submit_commit_record(journal, commit_transaction,
|
|
err = journal_submit_commit_record(journal, commit_transaction,
|
|
&cbh, crc32_sum);
|
|
&cbh, crc32_sum);
|
|
if (err)
|
|
if (err)
|
|
@@ -898,8 +893,7 @@ start_journal_io:
|
|
}
|
|
}
|
|
if (cbh)
|
|
if (cbh)
|
|
err = journal_wait_on_commit_record(journal, cbh);
|
|
err = journal_wait_on_commit_record(journal, cbh);
|
|
- if (JBD2_HAS_INCOMPAT_FEATURE(journal,
|
|
|
|
- JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT) &&
|
|
|
|
|
|
+ if (jbd2_has_feature_async_commit(journal) &&
|
|
journal->j_flags & JBD2_BARRIER) {
|
|
journal->j_flags & JBD2_BARRIER) {
|
|
blkdev_issue_flush(journal->j_dev, GFP_NOFS, NULL);
|
|
blkdev_issue_flush(journal->j_dev, GFP_NOFS, NULL);
|
|
}
|
|
}
|