]> www.infradead.org Git - users/hch/configfs.git/commitdiff
btrfs: remove extent_map::block_len member
authorQu Wenruo <wqu@suse.com>
Mon, 29 Apr 2024 22:23:05 +0000 (07:53 +0930)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:20 +0000 (15:33 +0200)
The extent_map::block_len is either extent_map::len (non-compressed
extent) or extent_map::disk_num_bytes (compressed extent).

Since we already have sanity checks to do the cross-checks between the
new and old members, we can drop the old extent_map::block_len now.

For most call sites, they can manually select extent_map::len or
extent_map::disk_num_bytes, since most if not all of them have checked
if the extent is compressed.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/compression.c
fs/btrfs/extent_map.c
fs/btrfs/extent_map.h
fs/btrfs/file-item.c
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/relocation.c
fs/btrfs/tests/extent-map-tests.c
fs/btrfs/tree-log.c
include/trace/events/btrfs.h

index 4f6d748aa99ef830b48858dd190b046cce118d02..cd88432e7072310fe695f34e375a7bf7ba075c0b 100644 (file)
@@ -585,7 +585,7 @@ void btrfs_submit_compressed_read(struct btrfs_bio *bbio)
        }
 
        ASSERT(extent_map_is_compressed(em));
-       compressed_len = em->block_len;
+       compressed_len = em->disk_num_bytes;
 
        cb = alloc_compressed_bio(inode, file_offset, REQ_OP_READ,
                                  end_bbio_compressed_read);
index bf5d117016c6bb459759df15169c01e22bf15537..3257b6f0c192f963fc5b045f18764b1135c45050 100644 (file)
@@ -183,11 +183,18 @@ static struct rb_node *__tree_search(struct rb_root *root, u64 offset,
        return NULL;
 }
 
+static inline u64 extent_map_block_len(const struct extent_map *em)
+{
+       if (extent_map_is_compressed(em))
+               return em->disk_num_bytes;
+       return em->len;
+}
+
 static inline u64 extent_map_block_end(const struct extent_map *em)
 {
-       if (em->block_start + em->block_len < em->block_start)
+       if (em->block_start + extent_map_block_len(em) < em->block_start)
                return (u64)-1;
-       return em->block_start + em->block_len;
+       return em->block_start + extent_map_block_len(em);
 }
 
 static bool can_merge_extent_map(const struct extent_map *em)
@@ -290,10 +297,9 @@ static void dump_extent_map(struct btrfs_fs_info *fs_info, const char *prefix,
        if (!IS_ENABLED(CONFIG_BTRFS_DEBUG))
                return;
        btrfs_crit(fs_info,
-"%s, start=%llu len=%llu disk_bytenr=%llu disk_num_bytes=%llu ram_bytes=%llu offset=%llu block_start=%llu block_len=%llu flags=0x%x",
+"%s, start=%llu len=%llu disk_bytenr=%llu disk_num_bytes=%llu ram_bytes=%llu offset=%llu block_start=%llu flags=0x%x",
                prefix, em->start, em->len, em->disk_bytenr, em->disk_num_bytes,
-               em->ram_bytes, em->offset, em->block_start,
-               em->block_len, em->flags);
+               em->ram_bytes, em->offset, em->block_start, em->flags);
        ASSERT(0);
 }
 
@@ -315,9 +321,6 @@ static void validate_extent_map(struct btrfs_fs_info *fs_info, struct extent_map
                        if (em->block_start != em->disk_bytenr)
                                dump_extent_map(fs_info,
                                        "mismatch block_start/disk_bytenr/offset", em);
-                       if (em->disk_num_bytes != em->block_len)
-                               dump_extent_map(fs_info,
-                                       "mismatch disk_num_bytes/block_len", em);
                } else if (em->block_start != em->disk_bytenr + em->offset) {
                        dump_extent_map(fs_info,
                                "mismatch block_start/disk_bytenr/offset", em);
@@ -355,7 +358,6 @@ static void try_merge_map(struct btrfs_inode *inode, struct extent_map *em)
                if (rb && can_merge_extent_map(merge) && mergeable_maps(merge, em)) {
                        em->start = merge->start;
                        em->len += merge->len;
-                       em->block_len += merge->block_len;
                        em->block_start = merge->block_start;
                        em->generation = max(em->generation, merge->generation);
 
@@ -376,7 +378,6 @@ static void try_merge_map(struct btrfs_inode *inode, struct extent_map *em)
                merge = rb_entry(rb, struct extent_map, rb_node);
        if (rb && can_merge_extent_map(merge) && mergeable_maps(em, merge)) {
                em->len += merge->len;
-               em->block_len += merge->block_len;
                if (em->disk_bytenr < EXTENT_MAP_LAST_BYTE)
                        merge_ondisk_extents(em, merge);
                validate_extent_map(fs_info, em);
@@ -670,7 +671,6 @@ static noinline int merge_extent_mapping(struct btrfs_inode *inode,
        if (em->block_start < EXTENT_MAP_LAST_BYTE &&
            !extent_map_is_compressed(em)) {
                em->block_start += start_diff;
-               em->block_len = em->len;
                em->offset += start_diff;
        }
        return add_extent_mapping(inode, em, 0);
@@ -890,17 +890,11 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end,
                        if (em->block_start < EXTENT_MAP_LAST_BYTE) {
                                split->block_start = em->block_start;
 
-                               if (compressed)
-                                       split->block_len = em->block_len;
-                               else
-                                       split->block_len = split->len;
                                split->disk_bytenr = em->disk_bytenr;
-                               split->disk_num_bytes = max(split->block_len,
-                                                           em->disk_num_bytes);
+                               split->disk_num_bytes = em->disk_num_bytes;
                                split->offset = em->offset;
                                split->ram_bytes = em->ram_bytes;
                        } else {
-                               split->block_len = 0;
                                split->block_start = em->block_start;
                                split->disk_bytenr = em->disk_bytenr;
                                split->disk_num_bytes = 0;
@@ -930,23 +924,18 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end,
                        split->generation = gen;
 
                        if (em->block_start < EXTENT_MAP_LAST_BYTE) {
-                               split->disk_num_bytes = max(em->block_len,
-                                                           em->disk_num_bytes);
+                               split->disk_num_bytes = em->disk_num_bytes;
                                split->offset = em->offset + end - em->start;
                                split->ram_bytes = em->ram_bytes;
-                               if (compressed) {
-                                       split->block_len = em->block_len;
-                               } else {
+                               if (!compressed) {
                                        const u64 diff = end - em->start;
 
-                                       split->block_len = split->len;
                                        split->block_start += diff;
                                }
                        } else {
                                split->disk_num_bytes = 0;
                                split->offset = 0;
                                split->ram_bytes = split->len;
-                               split->block_len = 0;
                        }
 
                        if (extent_map_in_tree(em)) {
@@ -1104,7 +1093,6 @@ int split_extent_map(struct btrfs_inode *inode, u64 start, u64 len, u64 pre,
        split_pre->disk_num_bytes = split_pre->len;
        split_pre->offset = 0;
        split_pre->block_start = new_logical;
-       split_pre->block_len = split_pre->len;
        split_pre->ram_bytes = split_pre->len;
        split_pre->flags = flags;
        split_pre->generation = em->generation;
@@ -1123,7 +1111,6 @@ int split_extent_map(struct btrfs_inode *inode, u64 start, u64 len, u64 pre,
        split_mid->disk_num_bytes = split_mid->len;
        split_mid->offset = 0;
        split_mid->block_start = em->block_start + pre;
-       split_mid->block_len = split_mid->len;
        split_mid->ram_bytes = split_mid->len;
        split_mid->flags = flags;
        split_mid->generation = em->generation;
index 5ae3d56b43516da4c857215d947ac3eb0fbcaf7a..5312bb542af04bde73bcdde2337ef51ef7a8cdf1 100644 (file)
@@ -102,15 +102,6 @@ struct extent_map {
         */
        u64 block_start;
 
-       /*
-        * The on-disk length for the file extent.
-        *
-        * For compressed extents it matches btrfs_file_extent_item::disk_num_bytes.
-        * For uncompressed extents it matches extent_map::len.
-        * For holes and inline extents it's -1 and shouldn't be used.
-        */
-       u64 block_len;
-
        /*
         * Generation of the extent map, for merged em it's the highest
         * generation of all merged ems.
index 06d23951901cfa6a45cd8e4fe51584f1c52a7f74..397df6588ce279aa7a6421d2e212020db94d9877 100644 (file)
@@ -1307,11 +1307,9 @@ void btrfs_extent_item_to_extent_map(struct btrfs_inode *inode,
                if (compress_type != BTRFS_COMPRESS_NONE) {
                        extent_map_set_compression(em, compress_type);
                        em->block_start = bytenr;
-                       em->block_len = em->disk_num_bytes;
                } else {
                        bytenr += btrfs_file_extent_offset(leaf, fi);
                        em->block_start = bytenr;
-                       em->block_len = em->len;
                        if (type == BTRFS_FILE_EXTENT_PREALLOC)
                                em->flags |= EXTENT_FLAG_PREALLOC;
                }
@@ -1324,11 +1322,6 @@ void btrfs_extent_item_to_extent_map(struct btrfs_inode *inode,
                em->start = 0;
                em->len = fs_info->sectorsize;
                em->offset = 0;
-               /*
-                * Initialize block_len with the same values
-                * as in inode.c:btrfs_get_extent().
-                */
-               em->block_len = (u64)-1;
                extent_map_set_compression(em, compress_type);
        } else {
                btrfs_err(fs_info,
index 9eeeb45ec952e0b78a9ce525e5cdcb9de84f92b7..c5b9a0b17405f4eab304c59e936033576cc64450 100644 (file)
@@ -2349,7 +2349,6 @@ out:
 
                hole_em->block_start = EXTENT_MAP_HOLE;
                hole_em->disk_bytenr = EXTENT_MAP_HOLE;
-               hole_em->block_len = 0;
                hole_em->disk_num_bytes = 0;
                hole_em->generation = trans->transid;
 
index bf6be31c15e98bf73055fc9fc203dcefb8a2c050..974363b85175d1b73efe7da848a74293dc2408d3 100644 (file)
@@ -140,7 +140,7 @@ static noinline int run_delalloc_cow(struct btrfs_inode *inode,
                                     bool pages_dirty);
 static struct extent_map *create_io_em(struct btrfs_inode *inode, u64 start,
                                       u64 len, u64 block_start,
-                                      u64 block_len, u64 disk_num_bytes,
+                                      u64 disk_num_bytes,
                                       u64 ram_bytes, int compress_type,
                                       const struct btrfs_file_extent *file_extent,
                                       int type);
@@ -1211,7 +1211,6 @@ static void submit_one_async_extent(struct async_chunk *async_chunk,
        em = create_io_em(inode, start,
                          async_extent->ram_size,       /* len */
                          ins.objectid,                 /* block_start */
-                         ins.offset,                   /* block_len */
                          ins.offset,                   /* orig_block_len */
                          async_extent->ram_size,       /* ram_bytes */
                          async_extent->compress_type,
@@ -1454,7 +1453,6 @@ static noinline int cow_file_range(struct btrfs_inode *inode,
 
                em = create_io_em(inode, start, ins.offset, /* len */
                                  ins.objectid, /* block_start */
-                                 ins.offset, /* block_len */
                                  ins.offset, /* orig_block_len */
                                  ram_size, /* ram_bytes */
                                  BTRFS_COMPRESS_NONE, /* compress_type */
@@ -2192,7 +2190,6 @@ must_cow:
 
                        em = create_io_em(inode, cur_offset, nocow_args.num_bytes,
                                          nocow_args.disk_bytenr, /* block_start */
-                                         nocow_args.num_bytes, /* block_len */
                                          nocow_args.disk_num_bytes, /* orig_block_len */
                                          ram_bytes, BTRFS_COMPRESS_NONE,
                                          &nocow_args.file_extent,
@@ -5028,7 +5025,6 @@ int btrfs_cont_expand(struct btrfs_inode *inode, loff_t oldsize, loff_t size)
 
                        hole_em->block_start = EXTENT_MAP_HOLE;
                        hole_em->disk_bytenr = EXTENT_MAP_HOLE;
-                       hole_em->block_len = 0;
                        hole_em->disk_num_bytes = 0;
                        hole_em->ram_bytes = hole_size;
                        hole_em->generation = btrfs_get_fs_generation(fs_info);
@@ -6897,7 +6893,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
        em->start = EXTENT_MAP_HOLE;
        em->disk_bytenr = EXTENT_MAP_HOLE;
        em->len = (u64)-1;
-       em->block_len = (u64)-1;
 
        path = btrfs_alloc_path();
        if (!path) {
@@ -7055,7 +7050,6 @@ static struct extent_map *btrfs_create_dio_extent(struct btrfs_inode *inode,
                                                  const u64 start,
                                                  const u64 len,
                                                  const u64 block_start,
-                                                 const u64 block_len,
                                                  const u64 orig_block_len,
                                                  const u64 ram_bytes,
                                                  const int type,
@@ -7066,14 +7060,14 @@ static struct extent_map *btrfs_create_dio_extent(struct btrfs_inode *inode,
 
        if (type != BTRFS_ORDERED_NOCOW) {
                em = create_io_em(inode, start, len, block_start,
-                                 block_len, orig_block_len, ram_bytes,
+                                 orig_block_len, ram_bytes,
                                  BTRFS_COMPRESS_NONE, /* compress_type */
                                  file_extent, type);
                if (IS_ERR(em))
                        goto out;
        }
        ordered = btrfs_alloc_ordered_extent(inode, start, len, len,
-                                            block_start, block_len, 0,
+                                            block_start, len, 0,
                                             (1 << type) |
                                             (1 << BTRFS_ORDERED_DIRECT),
                                             BTRFS_COMPRESS_NONE);
@@ -7125,7 +7119,7 @@ again:
        file_extent.offset = 0;
        file_extent.compression = BTRFS_COMPRESS_NONE;
        em = btrfs_create_dio_extent(inode, dio_data, start, ins.offset,
-                                    ins.objectid, ins.offset, ins.offset,
+                                    ins.objectid, ins.offset,
                                     ins.offset, BTRFS_ORDERED_REGULAR,
                                     &file_extent);
        btrfs_dec_block_group_reservations(fs_info, ins.objectid);
@@ -7365,7 +7359,7 @@ static int lock_extent_direct(struct inode *inode, u64 lockstart, u64 lockend,
 /* The callers of this must take lock_extent() */
 static struct extent_map *create_io_em(struct btrfs_inode *inode, u64 start,
                                       u64 len, u64 block_start,
-                                      u64 block_len, u64 disk_num_bytes,
+                                      u64 disk_num_bytes,
                                       u64 ram_bytes, int compress_type,
                                       const struct btrfs_file_extent *file_extent,
                                       int type)
@@ -7387,16 +7381,10 @@ static struct extent_map *create_io_em(struct btrfs_inode *inode, u64 start,
 
        switch (type) {
        case BTRFS_ORDERED_PREALLOC:
-               /* Uncompressed extents. */
-               ASSERT(block_len == len);
-
                /* We're only referring part of a larger preallocated extent. */
-               ASSERT(block_len <= ram_bytes);
+               ASSERT(len <= ram_bytes);
                break;
        case BTRFS_ORDERED_REGULAR:
-               /* Uncompressed extents. */
-               ASSERT(block_len == len);
-
                /* COW results a new extent matching our file extent size. */
                ASSERT(disk_num_bytes == len);
                ASSERT(ram_bytes == len);
@@ -7422,7 +7410,6 @@ static struct extent_map *create_io_em(struct btrfs_inode *inode, u64 start,
 
        em->start = start;
        em->len = len;
-       em->block_len = block_len;
        em->block_start = block_start;
        em->disk_bytenr = file_extent->disk_bytenr;
        em->disk_num_bytes = disk_num_bytes;
@@ -7511,7 +7498,7 @@ static int btrfs_get_blocks_direct_write(struct extent_map **map,
 
                em2 = btrfs_create_dio_extent(BTRFS_I(inode), dio_data, start, len,
                                              block_start,
-                                             len, orig_block_len,
+                                             orig_block_len,
                                              ram_bytes, type,
                                              &file_extent);
                btrfs_dec_nocow_writers(bg);
@@ -9606,7 +9593,6 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
                em->block_start = ins.objectid;
                em->disk_bytenr = ins.objectid;
                em->offset = 0;
-               em->block_len = ins.offset;
                em->disk_num_bytes = ins.offset;
                em->ram_bytes = ins.offset;
                em->flags |= EXTENT_FLAG_PREALLOC;
@@ -10103,12 +10089,12 @@ ssize_t btrfs_encoded_read(struct kiocb *iocb, struct iov_iter *iter,
                 * Bail if the buffer isn't large enough to return the whole
                 * compressed extent.
                 */
-               if (em->block_len > count) {
+               if (em->disk_num_bytes > count) {
                        ret = -ENOBUFS;
                        goto out_em;
                }
-               disk_io_size = em->block_len;
-               count = em->block_len;
+               disk_io_size = em->disk_num_bytes;
+               count = em->disk_num_bytes;
                encoded->unencoded_len = em->ram_bytes;
                encoded->unencoded_offset = iocb->ki_pos - (em->start - em->offset);
                ret = btrfs_encoded_io_compression_from_extent(fs_info,
@@ -10356,7 +10342,7 @@ ssize_t btrfs_do_encoded_write(struct kiocb *iocb, struct iov_iter *from,
        file_extent.compression = compression;
        em = create_io_em(inode, start, num_bytes,
                          ins.objectid,
-                         ins.offset, ins.offset, ram_bytes, compression,
+                         ins.offset, ram_bytes, compression,
                          &file_extent, BTRFS_ORDERED_COMPRESSED);
        if (IS_ERR(em)) {
                ret = PTR_ERR(em);
index 21061a0b2e7ce851afb56364785b873e6e2e50f5..68fe52ab445df53cd9729a6dae5b12547aebb1d8 100644 (file)
@@ -2912,7 +2912,6 @@ static noinline_for_stack int setup_relocation_extent_mapping(struct inode *inod
 
        em->start = start;
        em->len = end + 1 - start;
-       em->block_len = em->len;
        em->block_start = block_start;
        em->disk_bytenr = block_start;
        em->disk_num_bytes = em->len;
index 65c6921ff4a2d5d180dc2a99e53d42b0dc9ca18d..0dd270d6c506ba85769690dc38e7a097e745aa8b 100644 (file)
@@ -28,9 +28,10 @@ static int free_extent_map_tree(struct btrfs_inode *inode)
                if (refcount_read(&em->refs) != 1) {
                        ret = -EINVAL;
                        test_err(
-"em leak: em (start %llu len %llu block_start %llu block_len %llu) refs %d",
+"em leak: em (start %llu len %llu block_start %llu disk_num_bytes %llu offset %llu) refs %d",
                                 em->start, em->len, em->block_start,
-                                em->block_len, refcount_read(&em->refs));
+                                em->disk_num_bytes, em->offset,
+                                refcount_read(&em->refs));
 
                        refcount_set(&em->refs, 1);
                }
@@ -77,7 +78,6 @@ static int test_case_1(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = 0;
        em->len = SZ_16K;
        em->block_start = 0;
-       em->block_len = SZ_16K;
        em->disk_bytenr = 0;
        em->disk_num_bytes = SZ_16K;
        em->ram_bytes = SZ_16K;
@@ -101,7 +101,6 @@ static int test_case_1(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = SZ_16K;
        em->len = SZ_4K;
        em->block_start = SZ_32K; /* avoid merging */
-       em->block_len = SZ_4K;
        em->disk_bytenr = SZ_32K; /* avoid merging */
        em->disk_num_bytes = SZ_4K;
        em->ram_bytes = SZ_4K;
@@ -125,7 +124,6 @@ static int test_case_1(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = start;
        em->len = len;
        em->block_start = start;
-       em->block_len = len;
        em->disk_bytenr = start;
        em->disk_num_bytes = len;
        em->ram_bytes = len;
@@ -143,11 +141,11 @@ static int test_case_1(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
                goto out;
        }
        if (em->start != 0 || extent_map_end(em) != SZ_16K ||
-           em->block_start != 0 || em->block_len != SZ_16K) {
+           em->block_start != 0 || em->disk_num_bytes != SZ_16K) {
                test_err(
-"case1 [%llu %llu]: ret %d return a wrong em (start %llu len %llu block_start %llu block_len %llu",
+"case1 [%llu %llu]: ret %d return a wrong em (start %llu len %llu block_start %llu disk_num_bytes %llu",
                         start, start + len, ret, em->start, em->len,
-                        em->block_start, em->block_len);
+                        em->block_start, em->disk_num_bytes);
                ret = -EINVAL;
        }
        free_extent_map(em);
@@ -182,7 +180,6 @@ static int test_case_2(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = 0;
        em->len = SZ_1K;
        em->block_start = EXTENT_MAP_INLINE;
-       em->block_len = (u64)-1;
        em->disk_bytenr = EXTENT_MAP_INLINE;
        em->disk_num_bytes = 0;
        em->ram_bytes = SZ_1K;
@@ -206,7 +203,6 @@ static int test_case_2(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = SZ_4K;
        em->len = SZ_4K;
        em->block_start = SZ_4K;
-       em->block_len = SZ_4K;
        em->disk_bytenr = SZ_4K;
        em->disk_num_bytes = SZ_4K;
        em->ram_bytes = SZ_4K;
@@ -230,7 +226,6 @@ static int test_case_2(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = 0;
        em->len = SZ_1K;
        em->block_start = EXTENT_MAP_INLINE;
-       em->block_len = (u64)-1;
        em->disk_bytenr = EXTENT_MAP_INLINE;
        em->disk_num_bytes = 0;
        em->ram_bytes = SZ_1K;
@@ -247,11 +242,10 @@ static int test_case_2(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
                goto out;
        }
        if (em->start != 0 || extent_map_end(em) != SZ_1K ||
-           em->block_start != EXTENT_MAP_INLINE || em->block_len != (u64)-1) {
+           em->block_start != EXTENT_MAP_INLINE) {
                test_err(
-"case2 [0 1K]: ret %d return a wrong em (start %llu len %llu block_start %llu block_len %llu",
-                        ret, em->start, em->len, em->block_start,
-                        em->block_len);
+"case2 [0 1K]: ret %d return a wrong em (start %llu len %llu block_start %llu",
+                        ret, em->start, em->len, em->block_start);
                ret = -EINVAL;
        }
        free_extent_map(em);
@@ -282,7 +276,6 @@ static int __test_case_3(struct btrfs_fs_info *fs_info,
        em->start = SZ_4K;
        em->len = SZ_4K;
        em->block_start = SZ_4K;
-       em->block_len = SZ_4K;
        em->disk_bytenr = SZ_4K;
        em->disk_num_bytes = SZ_4K;
        em->ram_bytes = SZ_4K;
@@ -306,7 +299,6 @@ static int __test_case_3(struct btrfs_fs_info *fs_info,
        em->start = 0;
        em->len = SZ_16K;
        em->block_start = 0;
-       em->block_len = SZ_16K;
        em->disk_bytenr = 0;
        em->disk_num_bytes = SZ_16K;
        em->ram_bytes = SZ_16K;
@@ -329,11 +321,11 @@ static int __test_case_3(struct btrfs_fs_info *fs_info,
         * em->start.
         */
        if (start < em->start || start + len > extent_map_end(em) ||
-           em->start != em->block_start || em->len != em->block_len) {
+           em->start != em->block_start) {
                test_err(
 "case3 [%llu %llu): ret %d em (start %llu len %llu block_start %llu block_len %llu)",
                         start, start + len, ret, em->start, em->len,
-                        em->block_start, em->block_len);
+                        em->block_start, em->disk_num_bytes);
                ret = -EINVAL;
        }
        free_extent_map(em);
@@ -395,7 +387,6 @@ static int __test_case_4(struct btrfs_fs_info *fs_info,
        em->start = 0;
        em->len = SZ_8K;
        em->block_start = 0;
-       em->block_len = SZ_8K;
        em->disk_bytenr = 0;
        em->disk_num_bytes = SZ_8K;
        em->ram_bytes = SZ_8K;
@@ -419,7 +410,6 @@ static int __test_case_4(struct btrfs_fs_info *fs_info,
        em->start = SZ_8K;
        em->len = 24 * SZ_1K;
        em->block_start = SZ_16K; /* avoid merging */
-       em->block_len = 24 * SZ_1K;
        em->disk_bytenr = SZ_16K; /* avoid merging */
        em->disk_num_bytes = 24 * SZ_1K;
        em->ram_bytes = 24 * SZ_1K;
@@ -442,7 +432,6 @@ static int __test_case_4(struct btrfs_fs_info *fs_info,
        em->start = 0;
        em->len = SZ_32K;
        em->block_start = 0;
-       em->block_len = SZ_32K;
        em->disk_bytenr = 0;
        em->disk_num_bytes = SZ_32K;
        em->ram_bytes = SZ_32K;
@@ -462,9 +451,9 @@ static int __test_case_4(struct btrfs_fs_info *fs_info,
        }
        if (start < em->start || start + len > extent_map_end(em)) {
                test_err(
-"case4 [%llu %llu): ret %d, added wrong em (start %llu len %llu block_start %llu block_len %llu)",
+"case4 [%llu %llu): ret %d, added wrong em (start %llu len %llu block_start %llu disk_num_bytes %llu)",
                         start, start + len, ret, em->start, em->len, em->block_start,
-                        em->block_len);
+                        em->disk_num_bytes);
                ret = -EINVAL;
        }
        free_extent_map(em);
@@ -529,7 +518,6 @@ static int add_compressed_extent(struct btrfs_inode *inode,
        em->start = start;
        em->len = len;
        em->block_start = block_start;
-       em->block_len = SZ_4K;
        em->disk_bytenr = block_start;
        em->disk_num_bytes = SZ_4K;
        em->ram_bytes = len;
@@ -753,7 +741,6 @@ static int test_case_6(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = SZ_4K;
        em->len = SZ_4K;
        em->block_start = SZ_16K;
-       em->block_len = SZ_16K;
        em->disk_bytenr = SZ_16K;
        em->disk_num_bytes = SZ_16K;
        em->ram_bytes = SZ_16K;
@@ -809,7 +796,6 @@ static int test_case_7(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = 0;
        em->len = SZ_16K;
        em->block_start = 0;
-       em->block_len = SZ_4K;
        em->disk_bytenr = 0;
        em->disk_num_bytes = SZ_4K;
        em->ram_bytes = SZ_16K;
@@ -834,7 +820,6 @@ static int test_case_7(struct btrfs_fs_info *fs_info, struct btrfs_inode *inode)
        em->start = SZ_32K;
        em->len = SZ_16K;
        em->block_start = SZ_32K;
-       em->block_len = SZ_16K;
        em->disk_bytenr = SZ_32K;
        em->disk_num_bytes = SZ_16K;
        em->ram_bytes = SZ_16K;
index 5569b3ab9c27c9aa1592400bbc87a32535ce2e6c..933dab86d34d8c8e3424b1b6aad8cf6ced47af54 100644 (file)
@@ -4670,7 +4670,7 @@ static int log_extent_csums(struct btrfs_trans_handle *trans,
        /* If we're compressed we have to save the entire range of csums. */
        if (extent_map_is_compressed(em)) {
                csum_offset = 0;
-               csum_len = max(em->block_len, em->disk_num_bytes);
+               csum_len = em->disk_num_bytes;
        } else {
                csum_offset = mod_start - em->start;
                csum_len = mod_len;
@@ -4720,7 +4720,7 @@ static int log_one_extent(struct btrfs_trans_handle *trans,
        else
                btrfs_set_stack_file_extent_type(&fi, BTRFS_FILE_EXTENT_REG);
 
-       block_len = max(em->block_len, em->disk_num_bytes);
+       block_len = em->disk_num_bytes;
        compress_type = extent_map_compression(em);
        if (compress_type != BTRFS_COMPRESS_NONE) {
                btrfs_set_stack_file_extent_disk_bytenr(&fi, em->block_start);
index 44016b6dda606a0b329fa70ea9513863d7f0c40e..69bef548818c23fbf597a1f6eb37be359831dad5 100644 (file)
@@ -292,7 +292,6 @@ TRACE_EVENT_CONDITION(btrfs_get_extent,
                __field(        u64,  start             )
                __field(        u64,  len               )
                __field(        u64,  block_start       )
-               __field(        u64,  block_len         )
                __field(        u32,  flags             )
                __field(        int,  refs              )
        ),
@@ -303,19 +302,17 @@ TRACE_EVENT_CONDITION(btrfs_get_extent,
                __entry->start          = map->start;
                __entry->len            = map->len;
                __entry->block_start    = map->block_start;
-               __entry->block_len      = map->block_len;
                __entry->flags          = map->flags;
                __entry->refs           = refcount_read(&map->refs);
        ),
 
        TP_printk_btrfs(
-"root=%llu(%s) ino=%llu start=%llu len=%llu block_start=%llu(%s) block_len=%llu flags=%s refs=%u",
+"root=%llu(%s) ino=%llu start=%llu len=%llu block_start=%llu(%s) flags=%s refs=%u",
                  show_root_type(__entry->root_objectid),
                  __entry->ino,
                  __entry->start,
                  __entry->len,
                  show_map_type(__entry->block_start),
-                 __entry->block_len,
                  show_map_flags(__entry->flags),
                  __entry->refs)
 );