diff options
| author | Ingo Molnar <mingo@kernel.org> | 2018-03-09 07:32:20 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2018-03-09 07:32:20 +0100 |
| commit | fc4c5a3828bdba157f8ea406e1f4ceb75c13039c (patch) | |
| tree | e3fc4601f914fa59e70c7534206cf5c2c6ba16d1 /fs/btrfs/relocation.c | |
| parent | 14a7405b2e814221a951bd7a76ce4a8d24c1b3be (diff) | |
| parent | 1b88accf6a659c46d5c8e68912896f112bf882bb (diff) | |
| download | linux-fc4c5a3828bdba157f8ea406e1f4ceb75c13039c.tar.bz2 | |
Merge branch 'linus' into sched/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/btrfs/relocation.c')
| -rw-r--r-- | fs/btrfs/relocation.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index f0c3f00e97cb..cd2298d185dd 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -3268,8 +3268,22 @@ static int relocate_file_extent_cluster(struct inode *inode, nr++; } - btrfs_set_extent_delalloc(inode, page_start, page_end, 0, NULL, - 0); + ret = btrfs_set_extent_delalloc(inode, page_start, page_end, 0, + NULL, 0); + if (ret) { + unlock_page(page); + put_page(page); + btrfs_delalloc_release_metadata(BTRFS_I(inode), + PAGE_SIZE); + btrfs_delalloc_release_extents(BTRFS_I(inode), + PAGE_SIZE); + + clear_extent_bits(&BTRFS_I(inode)->io_tree, + page_start, page_end, + EXTENT_LOCKED | EXTENT_BOUNDARY); + goto out; + + } set_page_dirty(page); unlock_extent(&BTRFS_I(inode)->io_tree, |