diff options
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r-- | include/linux/jbd2.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 3efc43f3f162..1be23d9fdacb 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -1096,7 +1096,6 @@ extern int jbd2_journal_get_undo_access(handle_t *, struct buffer_head *); | |||
1096 | void jbd2_journal_set_triggers(struct buffer_head *, | 1096 | void jbd2_journal_set_triggers(struct buffer_head *, |
1097 | struct jbd2_buffer_trigger_type *type); | 1097 | struct jbd2_buffer_trigger_type *type); |
1098 | extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *); | 1098 | extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *); |
1099 | extern void jbd2_journal_release_buffer (handle_t *, struct buffer_head *); | ||
1100 | extern int jbd2_journal_forget (handle_t *, struct buffer_head *); | 1099 | extern int jbd2_journal_forget (handle_t *, struct buffer_head *); |
1101 | extern void journal_sync_buffer (struct buffer_head *); | 1100 | extern void journal_sync_buffer (struct buffer_head *); |
1102 | extern void jbd2_journal_invalidatepage(journal_t *, | 1101 | extern void jbd2_journal_invalidatepage(journal_t *, |
@@ -1303,15 +1302,21 @@ static inline int jbd_space_needed(journal_t *journal) | |||
1303 | 1302 | ||
1304 | extern int jbd_blocks_per_page(struct inode *inode); | 1303 | extern int jbd_blocks_per_page(struct inode *inode); |
1305 | 1304 | ||
1305 | /* JBD uses a CRC32 checksum */ | ||
1306 | #define JBD_MAX_CHECKSUM_SIZE 4 | ||
1307 | |||
1306 | static inline u32 jbd2_chksum(journal_t *journal, u32 crc, | 1308 | static inline u32 jbd2_chksum(journal_t *journal, u32 crc, |
1307 | const void *address, unsigned int length) | 1309 | const void *address, unsigned int length) |
1308 | { | 1310 | { |
1309 | struct { | 1311 | struct { |
1310 | struct shash_desc shash; | 1312 | struct shash_desc shash; |
1311 | char ctx[crypto_shash_descsize(journal->j_chksum_driver)]; | 1313 | char ctx[JBD_MAX_CHECKSUM_SIZE]; |
1312 | } desc; | 1314 | } desc; |
1313 | int err; | 1315 | int err; |
1314 | 1316 | ||
1317 | BUG_ON(crypto_shash_descsize(journal->j_chksum_driver) > | ||
1318 | JBD_MAX_CHECKSUM_SIZE); | ||
1319 | |||
1315 | desc.shash.tfm = journal->j_chksum_driver; | 1320 | desc.shash.tfm = journal->j_chksum_driver; |
1316 | desc.shash.flags = 0; | 1321 | desc.shash.flags = 0; |
1317 | *(u32 *)desc.ctx = crc; | 1322 | *(u32 *)desc.ctx = crc; |