Btrfs: fix __MAX_CSUM_ITEMS
authorChris Mason <clm@fb.com>
Wed, 3 Aug 2016 21:05:46 +0000 (14:05 -0700)
committerChris Mason <clm@fb.com>
Wed, 3 Aug 2016 21:08:37 +0000 (14:08 -0700)
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>
fs/btrfs/file-item.c

index 2fc803d..d0d571c 100644 (file)
@@ -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))