On 24.05.2017 06:01, Anand Jain wrote: > Instead of sending each argument of struct compressed_bio, send > the compressed_bio itself. > > Also by having struct compressed_bio in btrfs_decompress_bio() > it would help tracing. > > Signed-off-by: Anand Jain <anand.j...@oracle.com> > --- > This patch is preparatory for the up coming patch > btrfs: add compression trace points > > fs/btrfs/compression.c | 23 +++++++++-------------- > 1 file changed, 9 insertions(+), 14 deletions(-) > > diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c > index 10e6b282d09d..ee934e612f15 100644 > --- a/fs/btrfs/compression.c > +++ b/fs/btrfs/compression.c > @@ -81,9 +81,7 @@ struct compressed_bio { > u32 sums; > }; > > -static int btrfs_decompress_bio(int type, struct page **pages_in, > - u64 disk_start, struct bio *orig_bio, > - size_t srclen); > +static int btrfs_decompress_bio(struct compressed_bio *cb); > > static inline int compressed_bio_size(struct btrfs_fs_info *fs_info, > unsigned long disk_size) > @@ -173,11 +171,8 @@ static void end_compressed_bio_read(struct bio *bio) > /* ok, we're the last bio for this extent, lets start > * the decompression. > */ > - ret = btrfs_decompress_bio(cb->compress_type, > - cb->compressed_pages, > - cb->start, > - cb->orig_bio, > - cb->compressed_len); > + ret = btrfs_decompress_bio(cb); > + > csum_failed: > if (ret) > cb->errors = 1; > @@ -961,18 +956,18 @@ int btrfs_compress_pages(int type, struct address_space > *mapping, > * be contiguous. They all correspond to the range of bytes covered by > * the compressed extent. > */ > -static int btrfs_decompress_bio(int type, struct page **pages_in, > - u64 disk_start, struct bio *orig_bio, > - size_t srclen) > +static int btrfs_decompress_bio(struct compressed_bio *cb) > { > struct list_head *workspace; > int ret; > + int type = cb->compress_type; > > workspace = find_workspace(type); > > - ret = btrfs_compress_op[type-1]->decompress_bio(workspace, pages_in, > - disk_start, orig_bio, > - srclen); > + ret = btrfs_compress_op[type-1]->decompress_bio(workspace, > + cb->compressed_pages, cb->start, cb->orig_bio, > + cb->compressed_len); > + > free_workspace(type, workspace); > return ret; > } >
Can you take this idea one notch further and refactor also zlib_decompress_bio and lzo_decompress_bio functions as well? -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html