diff options
Diffstat (limited to 'include/linux')
| -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; |
