Skip to content

Commit

Permalink
md: call md_stop_writes from md_stop
Browse files Browse the repository at this point in the history
This moves the call to the other side of set_readonly, but that should
not be an issue.
This encapsulates in 'md_stop' all of the functionality for internally
stopping the array, leaving all the interactions with externalities
(sysfs, request_queue, gendisk) in do_md_stop.

Signed-off-by: NeilBrown <neilb@suse.de>
  • Loading branch information
NeilBrown committed May 18, 2010
1 parent a4bd82d commit cca9cf9
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/md/md.c
Original file line number Diff line number Diff line change
Expand Up @@ -4634,12 +4634,14 @@ static void md_stop_writes(mddev_t *mddev)

static void md_stop(mddev_t *mddev)
{
md_stop_writes(mddev);

mddev->pers->stop(mddev);
if (mddev->pers->sync_request && mddev->to_remove == NULL)
mddev->to_remove = &md_redundancy_group;
module_put(mddev->pers->owner);
mddev->pers = NULL;

clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
}

static int md_set_readonly(mddev_t *mddev, int is_open)
Expand Down Expand Up @@ -4684,8 +4686,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
err = -EBUSY;
} else if (mddev->pers) {

md_stop_writes(mddev);

if (mddev->ro)
set_disk_ro(disk, 0);

Expand All @@ -4710,7 +4710,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
if (mddev->ro)
mddev->ro = 0;

clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
err = 0;
}
mutex_unlock(&mddev->open_mutex);
Expand Down

0 comments on commit cca9cf9

Please sign in to comment.