]> git.karo-electronics.de Git - linux-beck.git/commitdiff
btrfs: make set_extent_bit helpers static inline
authorDavid Sterba <dsterba@suse.com>
Thu, 3 Dec 2015 13:08:11 +0000 (14:08 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 3 Dec 2015 13:08:11 +0000 (14:08 +0100)
The funcions just wrap the set_extent_bit API and generate function
calls. This increases stack consumption and may negatively affect
performance due to icache misses. We can simply make the helpers static
inline and keep the type checking and API untouched. The code slightly
increases:

   text    data     bss     dec     hex filename
 938427   43670   23144 1005241   f56b9 fs/btrfs/btrfs.ko.before
 938667   43670   23144 1005481   f57a9 fs/btrfs/btrfs.ko

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c
fs/btrfs/extent_io.h

index 9abe18763a7fb001632246fd712a64fdffcc0225..11dc81a24c7a79c3c699272048b0fef3652aebb1 100644 (file)
@@ -1285,20 +1285,6 @@ search_again:
 }
 
 /* wrappers around set/clear extent bit */
-int set_extent_dirty(struct extent_io_tree *tree, u64 start, u64 end,
-                    gfp_t mask)
-{
-       return set_extent_bit(tree, start, end, EXTENT_DIRTY, NULL,
-                             NULL, mask);
-}
-
-int set_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
-                   unsigned bits, gfp_t mask)
-{
-       return set_extent_bit(tree, start, end, bits, NULL,
-                             NULL, mask);
-}
-
 int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
                           unsigned bits, gfp_t mask,
                           struct extent_changeset *changeset)
@@ -1348,22 +1334,6 @@ int clear_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
                                  changeset);
 }
 
-int set_extent_delalloc(struct extent_io_tree *tree, u64 start, u64 end,
-                       struct extent_state **cached_state, gfp_t mask)
-{
-       return set_extent_bit(tree, start, end,
-                             EXTENT_DELALLOC | EXTENT_UPTODATE,
-                             NULL, cached_state, mask);
-}
-
-int set_extent_defrag(struct extent_io_tree *tree, u64 start, u64 end,
-                     struct extent_state **cached_state, gfp_t mask)
-{
-       return set_extent_bit(tree, start, end,
-                             EXTENT_DELALLOC | EXTENT_UPTODATE | EXTENT_DEFRAG,
-                             NULL, cached_state, mask);
-}
-
 int clear_extent_dirty(struct extent_io_tree *tree, u64 start, u64 end,
                       gfp_t mask)
 {
@@ -1372,20 +1342,6 @@ int clear_extent_dirty(struct extent_io_tree *tree, u64 start, u64 end,
                                EXTENT_DO_ACCOUNTING, 0, 0, NULL, mask);
 }
 
-int set_extent_new(struct extent_io_tree *tree, u64 start, u64 end,
-                    gfp_t mask)
-{
-       return set_extent_bit(tree, start, end, EXTENT_NEW, NULL,
-                             NULL, mask);
-}
-
-int set_extent_uptodate(struct extent_io_tree *tree, u64 start, u64 end,
-                       struct extent_state **cached_state, gfp_t mask)
-{
-       return set_extent_bit(tree, start, end, EXTENT_UPTODATE, NULL,
-                             cached_state, mask);
-}
-
 int clear_extent_uptodate(struct extent_io_tree *tree, u64 start, u64 end,
                          struct extent_state **cached_state, gfp_t mask)
 {
index f4c1ae11855f0b613894ea44026faf143021b613..4b89ee5837828d478e71095b2bfa4aac5084a6c4 100644 (file)
@@ -229,31 +229,65 @@ int clear_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
 int clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                     unsigned bits, int wake, int delete,
                     struct extent_state **cached, gfp_t mask);
-int set_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
-                   unsigned bits, gfp_t mask);
+
 int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
                           unsigned bits, gfp_t mask,
                           struct extent_changeset *changeset);
 int set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                   unsigned bits, u64 *failed_start,
                   struct extent_state **cached_state, gfp_t mask);
-int set_extent_uptodate(struct extent_io_tree *tree, u64 start, u64 end,
-                       struct extent_state **cached_state, gfp_t mask);
+
+static inline int set_extent_bits(struct extent_io_tree *tree, u64 start,
+               u64 end, unsigned bits, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end, bits, NULL, NULL, mask);
+}
+
 int clear_extent_uptodate(struct extent_io_tree *tree, u64 start, u64 end,
                          struct extent_state **cached_state, gfp_t mask);
-int set_extent_new(struct extent_io_tree *tree, u64 start, u64 end,
-                  gfp_t mask);
-int set_extent_dirty(struct extent_io_tree *tree, u64 start, u64 end,
-                    gfp_t mask);
+
+static inline int set_extent_dirty(struct extent_io_tree *tree, u64 start,
+               u64 end, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end, EXTENT_DIRTY, NULL,
+                             NULL, mask);
+}
+
 int clear_extent_dirty(struct extent_io_tree *tree, u64 start, u64 end,
                       gfp_t mask);
 int convert_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                       unsigned bits, unsigned clear_bits,
                       struct extent_state **cached_state, gfp_t mask);
-int set_extent_delalloc(struct extent_io_tree *tree, u64 start, u64 end,
-                       struct extent_state **cached_state, gfp_t mask);
-int set_extent_defrag(struct extent_io_tree *tree, u64 start, u64 end,
-                     struct extent_state **cached_state, gfp_t mask);
+
+static inline int set_extent_delalloc(struct extent_io_tree *tree, u64 start,
+               u64 end, struct extent_state **cached_state, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end,
+                             EXTENT_DELALLOC | EXTENT_UPTODATE,
+                             NULL, cached_state, mask);
+}
+
+static inline int set_extent_defrag(struct extent_io_tree *tree, u64 start,
+               u64 end, struct extent_state **cached_state, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end,
+                             EXTENT_DELALLOC | EXTENT_UPTODATE | EXTENT_DEFRAG,
+                             NULL, cached_state, mask);
+}
+
+static inline int set_extent_new(struct extent_io_tree *tree, u64 start,
+               u64 end, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end, EXTENT_NEW, NULL, NULL, mask);
+}
+
+static inline int set_extent_uptodate(struct extent_io_tree *tree, u64 start,
+               u64 end, struct extent_state **cached_state, gfp_t mask)
+{
+       return set_extent_bit(tree, start, end, EXTENT_UPTODATE, NULL,
+                             cached_state, mask);
+}
+
 int find_first_extent_bit(struct extent_io_tree *tree, u64 start,
                          u64 *start_ret, u64 *end_ret, unsigned bits,
                          struct extent_state **cached_state);