• Qu Wenruo's avatar
    btrfs: raid56: switch write path to rmw_rbio() · 93723095
    Qu Wenruo authored
    This includes the following changes:
    
    - Implement new raid_unplug() functions
      Now we don't need a workqueue to run the plug, as all our
      work is just queue rmw_rbio_work() call, which can be executed
      without sleep.
    
    - Implement a rmw_rbio_work_locked() helper
      This is for unlock_stripe(), which is already holding the full stripe
      lock.
    
    - Remove all the old functions
      This should already shows how complex the old functions are, as we
      ended up removing the following functions:
    
      * rmw_work()
      * validate_rbio_for_rmw()
      * raid56_rmw_end_io_work()
      * raid56_rmw_stripe()
      * full_stripe_write()
      * partial_stripe_write()
      * __raid56_parity_write()
      * run_plug()
      * unplug_work()
      * btrfs_raid_unplug()
      * rmw_work()
      * __raid56_parity_recover()
      * raid_recover_end_io_work()
    
    - Unexport rmw_rbio()
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    93723095
raid56.c 74.3 KB