@@ -850,7 +850,8 @@ static void rbio_orig_end_io(struct btrfs_raid_bio *rbio, int err, int uptodate)
* end io function used by finish_rmw. When we finally
* get here, we've written a full stripe
*/
-static void raid_write_end_io(struct bio *bio, int err)
+static void raid_write_end_io(struct bio *bio, int err,
+ struct batch_complete *batch)
{
struct btrfs_raid_bio *rbio = bio->bi_private;
@@ -1384,7 +1385,8 @@ static void set_bio_pages_uptodate(struct bio *bio)
* This will usually kick off finish_rmw once all the bios are read in, but it
* may trigger parity reconstruction if we had any errors along the way
*/
-static void raid_rmw_end_io(struct bio *bio, int err)
+static void raid_rmw_end_io(struct bio *bio, int err,
+ struct batch_complete *batch)
{
struct btrfs_raid_bio *rbio = bio->bi_private;
@@ -1905,7 +1907,8 @@ cleanup_io:
* This is called only for stripes we've read from disk to
* reconstruct the parity.
*/
-static void raid_recover_end_io(struct bio *bio, int err)
+static void raid_recover_end_io(struct bio *bio, int err,
+ struct batch_complete *batch)
{
struct btrfs_raid_bio *rbio = bio->bi_private;
The function pointer bi_end_io expects three arguments of the function it points to. This patch adds a struct batch_complete pointer as a third argument to the raid_write_end_io, raid_rmw_end_io and raid_recover_end_io functions. GCC is warning about this: fs/btrfs/raid56.c: In function ‘finish_rmw’: fs/btrfs/raid56.c:1258:18: warning: assignment from incompatible pointer type [enabled by default] fs/btrfs/raid56.c: In function ‘raid56_rmw_stripe’: fs/btrfs/raid56.c:1514:18: warning: assignment from incompatible pointer type [enabled by default] fs/btrfs/raid56.c: In function ‘__raid56_parity_recover’: fs/btrfs/raid56.c:2013:18: warning: assignment from incompatible pointer type [enabled by default] Signed-off-by: Emil Goode <emilgoode@gmail.com> --- fs/btrfs/raid56.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)