btrfs: raid56: add new helper for starting async work
authorDavid Sterba <dsterba@suse.com>
Fri, 29 Jun 2018 08:56:56 +0000 (10:56 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 6 Aug 2018 11:12:44 +0000 (13:12 +0200)
Add helper that schedules a given function to run on the rmw workqueue.
This will replace several standalone helpers.

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

index 1a1b7d6c44cbcef262b6e5c95afddeaa757e2c56..f30d847baf07c5a1aaf3583b3ed6335831fb6419 100644 (file)
@@ -174,6 +174,12 @@ static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
                                         int need_check);
 static void async_scrub_parity(struct btrfs_raid_bio *rbio);
 
+static void start_async_work(struct btrfs_raid_bio *rbio, btrfs_func_t work_func)
+{
+       btrfs_init_work(&rbio->work, btrfs_rmw_helper, work_func, NULL, NULL);
+       btrfs_queue_work(rbio->fs_info->rmw_workers, &rbio->work);
+}
+
 /*
  * the stripe hash table is used for locking, and to collect
  * bios in hopes of making a full stripe