aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-12-21 16:27:23 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:58 -0400
commit5d4fb734b4cb89a3902d6de309af0f6f3e63fe73 (patch)
tree0ceeb3fb26c6d8b49c0ba902f24e94e37f58f52c
parent1832a6d5ee3b1af61001cadba9e10da9e91af4a4 (diff)
Btrfs: Fix an off by one in the extent_map prepare write code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/extent_map.c4
-rw-r--r--fs/btrfs/inode.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
index 2b92f1070274..f53d8c976219 100644
--- a/fs/btrfs/extent_map.c
+++ b/fs/btrfs/extent_map.c
@@ -2270,7 +2270,7 @@ int extent_prepare_write(struct extent_map_tree *tree,
2270 kunmap_atomic(kaddr, KM_USER0); 2270 kunmap_atomic(kaddr, KM_USER0);
2271 } 2271 }
2272 if ((em->block_start != EXTENT_MAP_HOLE && 2272 if ((em->block_start != EXTENT_MAP_HOLE &&
2273 em->block_start != EXTENT_MAP_INLINE) && 2273 em->block_start != EXTENT_MAP_INLINE) &&
2274 !isnew && !PageUptodate(page) && 2274 !isnew && !PageUptodate(page) &&
2275 (block_off_end > to || block_off_start < from) && 2275 (block_off_end > to || block_off_start < from) &&
2276 !test_range_bit(tree, block_start, cur_end, 2276 !test_range_bit(tree, block_start, cur_end,
@@ -2279,7 +2279,7 @@ int extent_prepare_write(struct extent_map_tree *tree,
2279 u64 extent_offset = block_start - em->start; 2279 u64 extent_offset = block_start - em->start;
2280 size_t iosize; 2280 size_t iosize;
2281 sector = (em->block_start + extent_offset) >> 9; 2281 sector = (em->block_start + extent_offset) >> 9;
2282 iosize = (cur_end - block_start + blocksize - 1) & 2282 iosize = (cur_end - block_start + blocksize) &
2283 ~((u64)blocksize - 1); 2283 ~((u64)blocksize - 1);
2284 /* 2284 /*
2285 * we've already got the extent locked, but we 2285 * we've already got the extent locked, but we
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a9f5d6d417f0..5f5b7b89b144 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -1956,7 +1956,7 @@ static int btrfs_prepare_write(struct file *file, struct page *page,
1956 1956
1957 mutex_lock(&root->fs_info->fs_mutex); 1957 mutex_lock(&root->fs_info->fs_mutex);
1958 err = btrfs_check_free_space(root, PAGE_CACHE_SIZE, 0); 1958 err = btrfs_check_free_space(root, PAGE_CACHE_SIZE, 0);
1959 mutex_lock(&root->fs_info->fs_mutex); 1959 mutex_unlock(&root->fs_info->fs_mutex);
1960 if (err) 1960 if (err)
1961 return -ENOSPC; 1961 return -ENOSPC;
1962 1962