From fca5c84720a2171a32b81f6afa7840ab6a8ab7d2 Mon Sep 17 00:00:00 2001 From: Behan Webster Date: Thu, 8 Nov 2012 11:24:46 -0500 Subject: [PATCH] --- yaml --- r: 344842 b: refs/heads/master c: fd47d3e1c2949838e858379aaf2bc20647be2912 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/jbd2.h | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6658f68081cf..71538f957b84 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 37be2f59d3149b95afaeeeff94edde2c07f165d2 +refs/heads/master: fd47d3e1c2949838e858379aaf2bc20647be2912 diff --git a/trunk/include/linux/jbd2.h b/trunk/include/linux/jbd2.h index de7f55682088..1be23d9fdacb 100644 --- a/trunk/include/linux/jbd2.h +++ b/trunk/include/linux/jbd2.h @@ -1302,15 +1302,21 @@ static inline int jbd_space_needed(journal_t *journal) extern int jbd_blocks_per_page(struct inode *inode); +/* JBD uses a CRC32 checksum */ +#define JBD_MAX_CHECKSUM_SIZE 4 + static inline u32 jbd2_chksum(journal_t *journal, u32 crc, const void *address, unsigned int length) { struct { struct shash_desc shash; - char ctx[crypto_shash_descsize(journal->j_chksum_driver)]; + char ctx[JBD_MAX_CHECKSUM_SIZE]; } desc; int err; + BUG_ON(crypto_shash_descsize(journal->j_chksum_driver) > + JBD_MAX_CHECKSUM_SIZE); + desc.shash.tfm = journal->j_chksum_driver; desc.shash.flags = 0; *(u32 *)desc.ctx = crc;