diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-12-21 16:27:23 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:58 -0400 |
commit | 5d4fb734b4cb89a3902d6de309af0f6f3e63fe73 (patch) | |
tree | 0ceeb3fb26c6d8b49c0ba902f24e94e37f58f52c | |
parent | 1832a6d5ee3b1af61001cadba9e10da9e91af4a4 (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.c | 4 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 2 |
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 | ||