OSDN Git Service

btrfs: btrfs_decompress_bio() could accept compressed_bio instead
authorAnand Jain <anand.jain@oracle.com>
Fri, 26 May 2017 07:44:58 +0000 (15:44 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2017 16:26:00 +0000 (18:26 +0200)
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.jain@oracle.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/compression.c

index 10e6b28..ce57fea 100644 (file)
@@ -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;
 }