mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
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>
This commit is contained in:
parent
87968ddd2f
commit
c58098be97
3 changed files with 4 additions and 8 deletions
|
@ -779,7 +779,8 @@ static void do_failures(struct mirror_set *ms, struct bio_list *failures)
|
|||
hold_bio(ms, bio);
|
||||
else {
|
||||
ms->in_sync = 0;
|
||||
dm_rh_mark_nosync(ms->rh, bio, bio->bi_size, 0);
|
||||
dm_rh_mark_nosync(ms->rh, bio);
|
||||
bio_endio(bio, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -383,8 +383,6 @@ static void complete_resync_work(struct dm_region *reg, int success)
|
|||
/* dm_rh_mark_nosync
|
||||
* @ms
|
||||
* @bio
|
||||
* @done
|
||||
* @error
|
||||
*
|
||||
* The bio was written on some mirror(s) but failed on other mirror(s).
|
||||
* We can successfully endio the bio but should avoid the region being
|
||||
|
@ -392,8 +390,7 @@ static void complete_resync_work(struct dm_region *reg, int success)
|
|||
*
|
||||
* This function is _not_ safe in interrupt context!
|
||||
*/
|
||||
void dm_rh_mark_nosync(struct dm_region_hash *rh,
|
||||
struct bio *bio, unsigned done, int error)
|
||||
void dm_rh_mark_nosync(struct dm_region_hash *rh, struct bio *bio)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct dm_dirty_log *log = rh->log;
|
||||
|
@ -430,7 +427,6 @@ void dm_rh_mark_nosync(struct dm_region_hash *rh,
|
|||
BUG_ON(!list_empty(®->list));
|
||||
spin_unlock_irqrestore(&rh->region_lock, flags);
|
||||
|
||||
bio_endio(bio, error);
|
||||
if (recovering)
|
||||
complete_resync_work(reg, 0);
|
||||
}
|
||||
|
|
|
@ -78,8 +78,7 @@ void dm_rh_dec(struct dm_region_hash *rh, region_t region);
|
|||
/* Delay bios on regions. */
|
||||
void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio);
|
||||
|
||||
void dm_rh_mark_nosync(struct dm_region_hash *rh,
|
||||
struct bio *bio, unsigned done, int error);
|
||||
void dm_rh_mark_nosync(struct dm_region_hash *rh, struct bio *bio);
|
||||
|
||||
/*
|
||||
* Region recovery control.
|
||||
|
|
Loading…
Reference in a new issue