summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2016-08-03 23:05:46 +0200
committerChris Mason <clm@fb.com>2016-08-03 23:08:37 +0200
commit42049bf60db4c01e0432fc861463dcd3208c0d93 (patch)
treed0adda9b536d5c9cd12fcbae46c49569e9123f36
parentMerge branch 'kdave-v4.8' into for-linus-4.8 (diff)
downloadlinux-42049bf60db4c01e0432fc861463dcd3208c0d93.tar.xz
linux-42049bf60db4c01e0432fc861463dcd3208c0d93.zip
Btrfs: fix __MAX_CSUM_ITEMS
Jeff Mahoney's cleanup commit (14a1e067b4) wasn't correct for csums on machines where the pagesize >= metadata blocksize. This just reverts the relevant hunks to bring the old math back. Signed-off-by: Chris Mason <clm@fb.com>
-rw-r--r--fs/btrfs/file-item.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 2fc803da4680..d0d571c47d33 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -27,8 +27,9 @@
#include "print-tree.h"
#include "compression.h"
-#define __MAX_CSUM_ITEMS(r, size) \
- ((unsigned long)(((BTRFS_MAX_ITEM_SIZE(r) * 2) / size) - 1))
+#define __MAX_CSUM_ITEMS(r, size) ((unsigned long)(((BTRFS_LEAF_DATA_SIZE(r) - \
+ sizeof(struct btrfs_item) * 2) / \
+ size) - 1))
#define MAX_CSUM_ITEMS(r, size) (min_t(u32, __MAX_CSUM_ITEMS(r, size), \
PAGE_SIZE))