• David Sterba's avatar
    btrfs: merge struct extent_page_data to btrfs_bio_ctrl · ee5f017d
    David Sterba authored
    The two structures appear on the same call paths, btrfs_bio_ctrl is
    embedded in extent_page_data and we pass bio_ctrl to some functions.
    After merging there are fewer indirections and we have only one control
    structure. The packing remains same.
    
    The btrfs_bio_ctrl was selected as the target structure as the operation
    is closer to bio processing.
    
    Structure layout:
    
    struct btrfs_bio_ctrl {
            struct bio *               bio;                  /*     0     8 */
            int                        mirror_num;           /*     8     4 */
            enum btrfs_compression_type compress_type;       /*    12     4 */
            u32                        len_to_stripe_boundary; /*    16     4 */
            u32                        len_to_oe_boundary;   /*    20     4 */
            btrfs_bio_end_io_t         end_io_func;          /*    24     8 */
            bool                       extent_locked;        /*    32     1 */
            bool                       sync_io;              /*    33     1 */
    
            /* size: 40, cachelines: 1, members: 8 */
            /* padding: 6 */
            /* last cacheline: 40 bytes */
    };
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    ee5f017d
extent_io.c 159 KB