Commit c58098be979509a54021e837a47fcad08db31f94

Authored by Mikulas Patocka
Committed by Alasdair G Kergon
1 parent 87968ddd2f

dm raid1: remove bio_endio from dm_rh_mark_nosync

Move bio completion out of dm_rh_mark_nosync in preparation for the
next patch.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Takahiro Yasui <tyasui@redhat.com>
Tested-by: Takahiro Yasui <tyasui@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>

Showing 3 changed files with 4 additions and 8 deletions Side-by-side Diff

drivers/md/dm-raid1.c
... ... @@ -779,7 +779,8 @@
779 779 hold_bio(ms, bio);
780 780 else {
781 781 ms->in_sync = 0;
782   - dm_rh_mark_nosync(ms->rh, bio, bio->bi_size, 0);
  782 + dm_rh_mark_nosync(ms->rh, bio);
  783 + bio_endio(bio, 0);
783 784 }
784 785 }
785 786 }
drivers/md/dm-region-hash.c
... ... @@ -383,8 +383,6 @@
383 383 /* dm_rh_mark_nosync
384 384 * @ms
385 385 * @bio
386   - * @done
387   - * @error
388 386 *
389 387 * The bio was written on some mirror(s) but failed on other mirror(s).
390 388 * We can successfully endio the bio but should avoid the region being
... ... @@ -392,8 +390,7 @@
392 390 *
393 391 * This function is _not_ safe in interrupt context!
394 392 */
395   -void dm_rh_mark_nosync(struct dm_region_hash *rh,
396   - struct bio *bio, unsigned done, int error)
  393 +void dm_rh_mark_nosync(struct dm_region_hash *rh, struct bio *bio)
397 394 {
398 395 unsigned long flags;
399 396 struct dm_dirty_log *log = rh->log;
... ... @@ -430,7 +427,6 @@
430 427 BUG_ON(!list_empty(&reg->list));
431 428 spin_unlock_irqrestore(&rh->region_lock, flags);
432 429  
433   - bio_endio(bio, error);
434 430 if (recovering)
435 431 complete_resync_work(reg, 0);
436 432 }
include/linux/dm-region-hash.h
... ... @@ -78,8 +78,7 @@
78 78 /* Delay bios on regions. */
79 79 void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio);
80 80  
81   -void dm_rh_mark_nosync(struct dm_region_hash *rh,
82   - struct bio *bio, unsigned done, int error);
  81 +void dm_rh_mark_nosync(struct dm_region_hash *rh, struct bio *bio);
83 82  
84 83 /*
85 84 * Region recovery control.