diff options
| author | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:11 -0800 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:20 -0800 | 
| commit | 6b914c998787d65022e80d6262dfd0edef58cadb (patch) | |
| tree | ec9d9605ae08e6e40664c4302a181979ab4fe1d3 /fs/btrfs/tree-log.c | |
| parent | 1f87a404d02a96519284e1928445ca5cfe9667db (diff) | |
| parent | 949db153b6466c6f7cad5a427ecea94985927311 (diff) | |
| download | olio-linux-3.10-6b914c998787d65022e80d6262dfd0edef58cadb.tar.xz olio-linux-3.10-6b914c998787d65022e80d6262dfd0edef58cadb.zip  | |
Merge tag 'v3.8-rc5' into next/cleanup
Linux 3.8-rc5
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'fs/btrfs/tree-log.c')
| -rw-r--r-- | fs/btrfs/tree-log.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 83186c7e45d..9027bb1e746 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -3357,6 +3357,11 @@ static int log_one_extent(struct btrfs_trans_handle *trans,  	if (skip_csum)  		return 0; +	if (em->compress_type) { +		csum_offset = 0; +		csum_len = block_len; +	} +  	/* block start is already adjusted for the file extent offset. */  	ret = btrfs_lookup_csums_range(log->fs_info->csum_root,  				       em->block_start + csum_offset, @@ -3410,13 +3415,13 @@ static int btrfs_log_changed_extents(struct btrfs_trans_handle *trans,  		em = list_entry(extents.next, struct extent_map, list);  		list_del_init(&em->list); -		clear_bit(EXTENT_FLAG_LOGGING, &em->flags);  		/*  		 * If we had an error we just need to delete everybody from our  		 * private list.  		 */  		if (ret) { +			clear_em_logging(tree, em);  			free_extent_map(em);  			continue;  		} @@ -3424,8 +3429,9 @@ static int btrfs_log_changed_extents(struct btrfs_trans_handle *trans,  		write_unlock(&tree->lock);  		ret = log_one_extent(trans, inode, root, em, path); -		free_extent_map(em);  		write_lock(&tree->lock); +		clear_em_logging(tree, em); +		free_extent_map(em);  	}  	WARN_ON(!list_empty(&extents));  	write_unlock(&tree->lock);  |