btrfs: derive maximum output size in the compression implementation
The value of max_out can be calculated from the parameters passed to the compressors, which is number of pages and the page size, and we don't have to needlessly pass it around. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									069eac7850
								
							
						
					
					
						commit
						e5d7490236
					
				| @ -932,8 +932,7 @@ int btrfs_compress_pages(int type, struct address_space *mapping, | ||||
| 			 u64 start, struct page **pages, | ||||
| 			 unsigned long *out_pages, | ||||
| 			 unsigned long *total_in, | ||||
| 			 unsigned long *total_out, | ||||
| 			 unsigned long max_out) | ||||
| 			 unsigned long *total_out) | ||||
| { | ||||
| 	struct list_head *workspace; | ||||
| 	int ret; | ||||
| @ -943,8 +942,7 @@ int btrfs_compress_pages(int type, struct address_space *mapping, | ||||
| 	ret = btrfs_compress_op[type-1]->compress_pages(workspace, mapping, | ||||
| 						      start, pages, | ||||
| 						      out_pages, | ||||
| 						      total_in, total_out, | ||||
| 						      max_out); | ||||
| 						      total_in, total_out); | ||||
| 	free_workspace(type, workspace); | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -41,8 +41,7 @@ int btrfs_compress_pages(int type, struct address_space *mapping, | ||||
| 			 u64 start, struct page **pages, | ||||
| 			 unsigned long *out_pages, | ||||
| 			 unsigned long *total_in, | ||||
| 			 unsigned long *total_out, | ||||
| 			 unsigned long max_out); | ||||
| 			 unsigned long *total_out); | ||||
| int btrfs_decompress(int type, unsigned char *data_in, struct page *dest_page, | ||||
| 		     unsigned long start_byte, size_t srclen, size_t destlen); | ||||
| int btrfs_decompress_buf2page(const char *buf, unsigned long buf_start, | ||||
| @ -76,8 +75,7 @@ struct btrfs_compress_op { | ||||
| 			      struct page **pages, | ||||
| 			      unsigned long *out_pages, | ||||
| 			      unsigned long *total_in, | ||||
| 			      unsigned long *total_out, | ||||
| 			      unsigned long max_out); | ||||
| 			      unsigned long *total_out); | ||||
| 
 | ||||
| 	int (*decompress_bio)(struct list_head *workspace, | ||||
| 				 struct page **pages_in, | ||||
|  | ||||
| @ -510,8 +510,7 @@ again: | ||||
| 					   pages, | ||||
| 					   &nr_pages, | ||||
| 					   &total_in, | ||||
| 					   &total_compressed, | ||||
| 					   BTRFS_MAX_COMPRESSED); | ||||
| 					   &total_compressed); | ||||
| 
 | ||||
| 		if (!ret) { | ||||
| 			unsigned long offset = total_compressed & | ||||
|  | ||||
| @ -90,8 +90,7 @@ static int lzo_compress_pages(struct list_head *ws, | ||||
| 			      struct page **pages, | ||||
| 			      unsigned long *out_pages, | ||||
| 			      unsigned long *total_in, | ||||
| 			      unsigned long *total_out, | ||||
| 			      unsigned long max_out) | ||||
| 			      unsigned long *total_out) | ||||
| { | ||||
| 	struct workspace *workspace = list_entry(ws, struct workspace, list); | ||||
| 	int ret = 0; | ||||
| @ -103,6 +102,7 @@ static int lzo_compress_pages(struct list_head *ws, | ||||
| 	unsigned long bytes_left; | ||||
| 	unsigned long len = *total_out; | ||||
| 	unsigned long nr_dest_pages = *out_pages; | ||||
| 	const unsigned long max_out = nr_dest_pages * PAGE_SIZE; | ||||
| 	size_t in_len; | ||||
| 	size_t out_len; | ||||
| 	char *buf; | ||||
|  | ||||
| @ -77,8 +77,7 @@ static int zlib_compress_pages(struct list_head *ws, | ||||
| 			       struct page **pages, | ||||
| 			       unsigned long *out_pages, | ||||
| 			       unsigned long *total_in, | ||||
| 			       unsigned long *total_out, | ||||
| 			       unsigned long max_out) | ||||
| 			       unsigned long *total_out) | ||||
| { | ||||
| 	struct workspace *workspace = list_entry(ws, struct workspace, list); | ||||
| 	int ret; | ||||
| @ -90,6 +89,7 @@ static int zlib_compress_pages(struct list_head *ws, | ||||
| 	unsigned long bytes_left; | ||||
| 	unsigned long len = *total_out; | ||||
| 	unsigned long nr_dest_pages = *out_pages; | ||||
| 	const unsigned long max_out = nr_dest_pages * PAGE_SIZE; | ||||
| 
 | ||||
| 	*out_pages = 0; | ||||
| 	*total_out = 0; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user