Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 9397
b: refs/heads/master
c: 485ef69
h: refs/heads/master
i:
  9395: f45fb61
v: v3
  • Loading branch information
Alasdair G Kergon authored and Linus Torvalds committed Sep 28, 2005
1 parent 0fb7079 commit 430ff15
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 269fd2a6f84828fd96218d164dace8c413fa5c03
refs/heads/master: 485ef69edefd7fc7f351c94d0d77b3ed8a242f7b
16 changes: 10 additions & 6 deletions trunk/drivers/md/dm-mpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,13 +329,17 @@ static int map_io(struct multipath *m, struct bio *bio, struct mpath_io *mpio,
/*
* If we run out of usable paths, should we queue I/O or error it?
*/
static int queue_if_no_path(struct multipath *m, unsigned queue_if_no_path)
static int queue_if_no_path(struct multipath *m, unsigned queue_if_no_path,
unsigned save_old_value)
{
unsigned long flags;

spin_lock_irqsave(&m->lock, flags);

m->saved_queue_if_no_path = m->queue_if_no_path;
if (save_old_value)
m->saved_queue_if_no_path = m->queue_if_no_path;
else
m->saved_queue_if_no_path = queue_if_no_path;
m->queue_if_no_path = queue_if_no_path;
if (!m->queue_if_no_path && m->queue_size)
queue_work(kmultipathd, &m->process_queued_ios);
Expand Down Expand Up @@ -677,7 +681,7 @@ static int parse_features(struct arg_set *as, struct multipath *m,
return 0;

if (!strnicmp(shift(as), MESG_STR("queue_if_no_path")))
return queue_if_no_path(m, 1);
return queue_if_no_path(m, 1, 0);
else {
ti->error = "Unrecognised multipath feature request";
return -EINVAL;
Expand Down Expand Up @@ -1077,7 +1081,7 @@ static void multipath_presuspend(struct dm_target *ti)
{
struct multipath *m = (struct multipath *) ti->private;

queue_if_no_path(m, 0);
queue_if_no_path(m, 0, 1);
}

/*
Expand Down Expand Up @@ -1222,9 +1226,9 @@ static int multipath_message(struct dm_target *ti, unsigned argc, char **argv)

if (argc == 1) {
if (!strnicmp(argv[0], MESG_STR("queue_if_no_path")))
return queue_if_no_path(m, 1);
return queue_if_no_path(m, 1, 0);
else if (!strnicmp(argv[0], MESG_STR("fail_if_no_path")))
return queue_if_no_path(m, 0);
return queue_if_no_path(m, 0, 0);
}

if (argc != 2)
Expand Down

0 comments on commit 430ff15

Please sign in to comment.