aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/btrfs_inode.h
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2011-08-04 10:25:02 -0400
committerJosef Bacik <josef@redhat.com>2011-10-19 15:12:31 -0400
commit7709cde33f12db71efb377fae4ae7aab6c94ebc6 (patch)
treef60b4ff7dafa0fcf64e0d9e9445d6984739cbfe6 /fs/btrfs/btrfs_inode.h
parent9e4871070b5f070cacf26525389d56e0345ba156 (diff)
Btrfs: calculate checksum space correctly
We have not been reserving enough space for checksums. We were just reserving bytes for the checksum items themselves, we were not taking into account having to cow the tree and such. This patch adds a csum_bytes counter to the inode for keeping track of the number of bytes outstanding we have for checksums. Then we calculate how many leaves would be required for the checksums we are given and use that to reserve space. This adds a significant amount of bytes to our reservations, but we will handle this later. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs/btrfs_inode.h')
-rw-r--r--fs/btrfs/btrfs_inode.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index c70fb10a307b..5a5d325a3935 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -123,6 +123,12 @@ struct btrfs_inode {
123 */ 123 */
124 u64 last_unlink_trans; 124 u64 last_unlink_trans;
125 125
126 /*
127 * Number of bytes outstanding that are going to need csums. This is
128 * used in ENOSPC accounting.
129 */
130 u64 csum_bytes;
131
126 /* flags field from the on disk inode */ 132 /* flags field from the on disk inode */
127 u32 flags; 133 u32 flags;
128 134