summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2012-07-22 20:25:31 -0400
committerTheodore Ts'o <tytso@mit.edu>2012-07-22 20:25:31 -0400
commit3108b54bcedde5d952c90460df5bc21efc1e134f (patch)
tree7adb071d689b93960069666f8d03bbafb629b93c
parent8a9918497bcf5aaa8d45eb61c373605bc4e8c81f (diff)
downloadlinux-stable-3108b54bcedde5d952c90460df5bc21efc1e134f.tar.gz
linux-stable-3108b54bcedde5d952c90460df5bc21efc1e134f.tar.bz2
linux-stable-3108b54bcedde5d952c90460df5bc21efc1e134f.zip
ext4: remove dynamic array size in ext4_chksum()
The ext4_checksum() inline function was using a dynamic array size, which is not legal C. (It is a gcc extension). Remove it. Cc: "Darrick J. Wong" <djwong@us.ibm.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r--fs/ext4/ext4.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 1610e808ebe3..e8e8afa402f1 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1667,10 +1667,12 @@ static inline u32 ext4_chksum(struct ext4_sb_info *sbi, u32 crc,
{
struct {
struct shash_desc shash;
- char ctx[crypto_shash_descsize(sbi->s_chksum_driver)];
+ char ctx[4];
} desc;
int err;
+ BUG_ON(crypto_shash_descsize(sbi->s_chksum_driver)!=sizeof(desc.ctx));
+
desc.shash.tfm = sbi->s_chksum_driver;
desc.shash.flags = 0;
*(u32 *)desc.ctx = crc;