btrfs: Make flush_space return void
authorNikolay Borisov <nborisov@suse.com>
Tue, 25 Jul 2017 14:48:28 +0000 (17:48 +0300)
committerDavid Sterba <dsterba@suse.com>
Wed, 16 Aug 2017 14:12:04 +0000 (16:12 +0200)
The return value of flush_space was used to have significance in the
early days when the code was first introduced and before the ticketed
enospc rework. Since the latter got introduced the return value lost any
significance whatsoever to its callers. So let's remove it. While at it
also remove the unused ticket variable in
btrfs_async_reclaim_metadata_space. It was used in the initial version
of the ticketed ENOSPC work, however Wang Xiaoguang detected a problem
with this and fixed it in ce129655c9d9 ("btrfs: introduce tickets_id to
determine whether asynchronous metadata reclaim work makes progress").

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ add comment ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-tree.c

index 9f0563dbbd5f552f3b4e2991ac4cdaa4ee54a528..42251c2eb7d2da399f0616e71fda55107a233ee6 100644 (file)
@@ -4897,7 +4897,12 @@ struct reserve_ticket {
        wait_queue_head_t wait;
 };
 
-static int flush_space(struct btrfs_fs_info *fs_info,
+/*
+ * Try to flush some data based on policy set by @state. This is only advisory
+ * and may fail for various reasons. The caller is supposed to examine the
+ * state of @space_info to detect the outcome.
+ */
+static void flush_space(struct btrfs_fs_info *fs_info,
                       struct btrfs_space_info *space_info, u64 num_bytes,
                       int state)
 {
@@ -4951,7 +4956,7 @@ static int flush_space(struct btrfs_fs_info *fs_info,
 
        trace_btrfs_flush_space(fs_info, space_info->flags, num_bytes, state,
                                ret);
-       return ret;
+       return;
 }
 
 static inline u64
@@ -5053,10 +5058,7 @@ static void btrfs_async_reclaim_metadata_space(struct work_struct *work)
 
        flush_state = FLUSH_DELAYED_ITEMS_NR;
        do {
-               struct reserve_ticket *ticket;
-               int ret;
-
-               ret = flush_space(fs_info, space_info, to_reclaim, flush_state);
+               flush_space(fs_info, space_info, to_reclaim, flush_state);
                spin_lock(&space_info->lock);
                if (list_empty(&space_info->tickets)) {
                        space_info->flush = 0;
@@ -5066,8 +5068,6 @@ static void btrfs_async_reclaim_metadata_space(struct work_struct *work)
                to_reclaim = btrfs_calc_reclaim_metadata_size(fs_info,
                                                              space_info,
                                                              false);
-               ticket = list_first_entry(&space_info->tickets,
-                                         struct reserve_ticket, list);
                if (last_tickets_id == space_info->tickets_id) {
                        flush_state++;
                } else {