Use btrfs_fill_file_extent() function to replace the hand-coded codes.
As it has better check and takes less effort to maintain.

Signed-off-by: Qu Wenruo <quwen...@cn.fujitsu.com>
---
 fs/btrfs/file-item.c | 20 ++++----------------
 fs/btrfs/inode.c     | 38 ++++++--------------------------------
 2 files changed, 10 insertions(+), 48 deletions(-)

diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index e1d7c03..87a8d85 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -88,7 +88,6 @@ int btrfs_insert_file_extent(struct btrfs_trans_handle *trans,
        struct btrfs_file_extent_item *item;
        struct btrfs_key file_key;
        struct btrfs_path *path;
-       struct extent_buffer *leaf;
 
        path = btrfs_alloc_path();
        if (!path)
@@ -103,21 +102,10 @@ int btrfs_insert_file_extent(struct btrfs_trans_handle 
*trans,
        if (ret < 0)
                goto out;
        BUG_ON(ret); /* Can't happen */
-       leaf = path->nodes[0];
-       item = btrfs_item_ptr(leaf, path->slots[0],
-                             struct btrfs_file_extent_item);
-       btrfs_set_file_extent_disk_bytenr(leaf, item, disk_offset);
-       btrfs_set_file_extent_disk_num_bytes(leaf, item, disk_num_bytes);
-       btrfs_set_file_extent_offset(leaf, item, offset);
-       btrfs_set_file_extent_num_bytes(leaf, item, num_bytes);
-       btrfs_set_file_extent_ram_bytes(leaf, item, ram_bytes);
-       btrfs_set_file_extent_generation(leaf, item, trans->transid);
-       btrfs_set_file_extent_type(leaf, item, BTRFS_FILE_EXTENT_REG);
-       btrfs_set_file_extent_compression(leaf, item, compression);
-       btrfs_set_file_extent_encryption(leaf, item, encryption);
-       btrfs_set_file_extent_other_encoding(leaf, item, other_encoding);
-
-       btrfs_mark_buffer_dirty(leaf);
+       btrfs_fill_file_extent(trans, path, disk_offset, disk_num_bytes,
+                              offset, num_bytes, ram_bytes,
+                              BTRFS_FILE_EXTENT_REG, compression, encryption,
+                              other_encoding);
 out:
        btrfs_free_path(path);
        return ret;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index e33dff3..3221010 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2052,7 +2052,6 @@ static int insert_reserved_file_extent(struct 
btrfs_trans_handle *trans,
        struct btrfs_root *root = BTRFS_I(inode)->root;
        struct btrfs_file_extent_item *fi;
        struct btrfs_path *path;
-       struct extent_buffer *leaf;
        struct btrfs_key ins;
        int extent_inserted = 0;
        int ret;
@@ -2087,21 +2086,9 @@ static int insert_reserved_file_extent(struct 
btrfs_trans_handle *trans,
                if (ret)
                        goto out;
        }
-       leaf = path->nodes[0];
-       fi = btrfs_item_ptr(leaf, path->slots[0],
-                           struct btrfs_file_extent_item);
-       btrfs_set_file_extent_generation(leaf, fi, trans->transid);
-       btrfs_set_file_extent_type(leaf, fi, extent_type);
-       btrfs_set_file_extent_disk_bytenr(leaf, fi, disk_bytenr);
-       btrfs_set_file_extent_disk_num_bytes(leaf, fi, disk_num_bytes);
-       btrfs_set_file_extent_offset(leaf, fi, 0);
-       btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes);
-       btrfs_set_file_extent_ram_bytes(leaf, fi, ram_bytes);
-       btrfs_set_file_extent_compression(leaf, fi, compression);
-       btrfs_set_file_extent_encryption(leaf, fi, encryption);
-       btrfs_set_file_extent_other_encoding(leaf, fi, other_encoding);
-
-       btrfs_mark_buffer_dirty(leaf);
+       btrfs_fill_file_extent(trans, path, disk_bytenr, disk_num_bytes, 0,
+                              num_bytes, ram_bytes, extent_type, compression,
+                              encryption, other_encoding);
        btrfs_release_path(path);
 
        inode_add_bytes(inode, num_bytes);
@@ -2391,7 +2378,6 @@ static noinline int relink_extent_backref(struct 
btrfs_path *path,
                                 struct sa_defrag_extent_backref *backref)
 {
        struct btrfs_file_extent_item *extent;
-       struct btrfs_file_extent_item *item;
        struct btrfs_ordered_extent *ordered;
        struct btrfs_trans_handle *trans;
        struct btrfs_fs_info *fs_info;
@@ -2548,21 +2534,9 @@ again:
                goto out_free_path;
        }
 
-       leaf = path->nodes[0];
-       item = btrfs_item_ptr(leaf, path->slots[0],
-                               struct btrfs_file_extent_item);
-       btrfs_set_file_extent_disk_bytenr(leaf, item, new->bytenr);
-       btrfs_set_file_extent_disk_num_bytes(leaf, item, new->disk_len);
-       btrfs_set_file_extent_offset(leaf, item, start - new->file_pos);
-       btrfs_set_file_extent_num_bytes(leaf, item, len);
-       btrfs_set_file_extent_ram_bytes(leaf, item, new->len);
-       btrfs_set_file_extent_generation(leaf, item, trans->transid);
-       btrfs_set_file_extent_type(leaf, item, BTRFS_FILE_EXTENT_REG);
-       btrfs_set_file_extent_compression(leaf, item, new->compress_type);
-       btrfs_set_file_extent_encryption(leaf, item, 0);
-       btrfs_set_file_extent_other_encoding(leaf, item, 0);
-
-       btrfs_mark_buffer_dirty(leaf);
+       btrfs_fill_file_extent(trans, path, new->bytenr, new->disk_len,
+                              start - new->file_pos, len, new->len,
+                              BTRFS_FILE_EXTENT_REG, new->compress_type, 0, 0);
        inode_add_bytes(inode, len);
        btrfs_release_path(path);
 
-- 
2.4.6

--
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

Reply via email to