btrfs: Simplify update of space_info in __reserve_metadata_bytes()
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Tue, 25 Jun 2019 18:11:31 +0000 (20:11 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 2 Jul 2019 10:30:53 +0000 (12:30 +0200)
We don't need an if-else-if chain where we can use a simple OR since
both conditions are performing the same action. The short-circuit for OR
will ensure that if the first condition is true, can_overcommit() is not
called.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/space-info.c

index ce33b1a..ab7b9ec 100644 (file)
@@ -967,18 +967,12 @@ static int __reserve_metadata_bytes(struct btrfs_fs_info *fs_info,
        used = btrfs_space_info_used(space_info, true);
 
        /*
-        * If we have enough space then hooray, make our reservation and carry
-        * on.  If not see if we can overcommit, and if we can, hooray carry on.
-        * If not things get more complicated.
+        * Carry on if we have enough space (short-circuit) OR call
+        * can_overcommit() to ensure we can overcommit to continue.
         */
-       if (used + orig_bytes <= space_info->total_bytes) {
-               btrfs_space_info_update_bytes_may_use(fs_info, space_info,
-                                                     orig_bytes);
-               trace_btrfs_space_reservation(fs_info, "space_info",
-                                             space_info->flags, orig_bytes, 1);
-               ret = 0;
-       } else if (can_overcommit(fs_info, space_info, orig_bytes, flush,
-                                 system_chunk)) {
+       if ((used + orig_bytes <= space_info->total_bytes) ||
+           can_overcommit(fs_info, space_info, orig_bytes, flush,
+                          system_chunk)) {
                btrfs_space_info_update_bytes_may_use(fs_info, space_info,
                                                      orig_bytes);
                trace_btrfs_space_reservation(fs_info, "space_info",