From 7c62ac6c5abbce66c8aace495155d83447d5ba45 Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Mon, 10 Nov 2008 11:53:33 -0500 Subject: [PATCH] --- yaml --- r: 129009 b: refs/heads/master c: 445a69449994a37615cd47e47bcab2e42a070adf h: refs/heads/master i: 129007: 0e3d2fb6edf5b40aaf2d0cb52e23226c053a7494 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/file.c | 3 ++- trunk/fs/btrfs/inode.c | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 07127e3d3206..daa85e4afe32 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 39be25cd89450940b0e5f8a6aad71d1ec99b17bf +refs/heads/master: 445a69449994a37615cd47e47bcab2e42a070adf diff --git a/trunk/fs/btrfs/file.c b/trunk/fs/btrfs/file.c index 85841c538805..4119f9a95320 100644 --- a/trunk/fs/btrfs/file.c +++ b/trunk/fs/btrfs/file.c @@ -244,16 +244,17 @@ int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end, split->start = start + len; split->len = em->start + em->len - (start + len); - split->orig_start = em->orig_start; split->bdev = em->bdev; split->flags = flags; if (compressed) { split->block_len = em->block_len; split->block_start = em->block_start; + split->orig_start = em->orig_start; } else { split->block_len = split->len; split->block_start = em->block_start + diff; + split->orig_start = split->start; } ret = add_extent_mapping(em_tree, split); diff --git a/trunk/fs/btrfs/inode.c b/trunk/fs/btrfs/inode.c index 59660293d291..5ca9c0672374 100644 --- a/trunk/fs/btrfs/inode.c +++ b/trunk/fs/btrfs/inode.c @@ -610,6 +610,7 @@ static noinline int submit_compressed_extents(struct inode *inode, em = alloc_extent_map(GFP_NOFS); em->start = async_extent->start; em->len = async_extent->ram_size; + em->orig_start = em->start; em->block_start = ins.objectid; em->block_len = ins.offset; @@ -743,6 +744,7 @@ static noinline int cow_file_range(struct inode *inode, } em = alloc_extent_map(GFP_NOFS); em->start = start; + em->orig_start = em->start; ram_size = ins.offset; em->len = ins.offset; @@ -1057,6 +1059,7 @@ static int run_delalloc_nocow(struct inode *inode, struct page *locked_page, em_tree = &BTRFS_I(inode)->extent_tree; em = alloc_extent_map(GFP_NOFS); em->start = cur_offset; + em->orig_start = em->start; em->len = num_bytes; em->block_len = num_bytes; em->block_start = disk_bytenr; @@ -3876,6 +3879,7 @@ struct extent_map *btrfs_get_extent(struct inode *inode, struct page *page, } em->bdev = root->fs_info->fs_devices->latest_bdev; em->start = EXTENT_MAP_HOLE; + em->orig_start = EXTENT_MAP_HOLE; em->len = (u64)-1; em->block_len = (u64)-1;