]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.fixes/dm-mpath-remove-is_active
Updated xen patches taken from suse.
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.fixes / dm-mpath-remove-is_active
diff --git a/src/patches/suse-2.6.27.25/patches.fixes/dm-mpath-remove-is_active b/src/patches/suse-2.6.27.25/patches.fixes/dm-mpath-remove-is_active
new file mode 100644 (file)
index 0000000..555c726
--- /dev/null
@@ -0,0 +1,94 @@
+Subject: dm mpath: remove is_active from struct dm_path
+From: Hannes Reinecke <hare@suse.de>
+Date: Fri Oct 24 13:31:15 2008 +0200:
+Git: 1271668e1c80210efa60c51a52b72bfb587eebe7
+
+This patch moves 'is_active' from struct dm_path to struct pgpath
+as it does not need exporting.
+
+Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
+Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
+Signed-off-by: Alasdair G Kergon <agk@redhat.com>
+
+Conflicts:
+
+       drivers/md/dm-mpath.c
+
+---
+ drivers/md/dm-mpath.c |   13 +++++++------
+ drivers/md/dm-mpath.h |    2 --
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+--- a/drivers/md/dm-mpath.c
++++ b/drivers/md/dm-mpath.c
+@@ -28,6 +28,7 @@ struct pgpath {
+       struct list_head list;
+       struct priority_group *pg;      /* Owning PG */
++      unsigned is_active;             /* Path status */
+       unsigned fail_count;            /* Cumulative failure count */
+       struct dm_path path;
+@@ -122,7 +123,7 @@ static struct pgpath *alloc_pgpath(void)
+       struct pgpath *pgpath = kzalloc(sizeof(*pgpath), GFP_KERNEL);
+       if (pgpath) {
+-              pgpath->path.is_active = 1;
++              pgpath->is_active = 1;
+               INIT_WORK(&pgpath->deactivate_path, deactivate_path);
+       }
+@@ -869,13 +870,13 @@ static int fail_path(struct pgpath *pgpa
+       spin_lock_irqsave(&m->lock, flags);
+-      if (!pgpath->path.is_active)
++      if (!pgpath->is_active)
+               goto out;
+       DMWARN("Failing path %s.", pgpath->path.dev->name);
+       pgpath->pg->ps.type->fail_path(&pgpath->pg->ps, &pgpath->path);
+-      pgpath->path.is_active = 0;
++      pgpath->is_active = 0;
+       pgpath->fail_count++;
+       m->nr_valid_paths--;
+@@ -906,7 +907,7 @@ static int reinstate_path(struct pgpath 
+       spin_lock_irqsave(&m->lock, flags);
+-      if (pgpath->path.is_active)
++      if (pgpath->is_active)
+               goto out;
+       if (!pgpath->pg->ps.type->reinstate_path) {
+@@ -920,7 +921,7 @@ static int reinstate_path(struct pgpath 
+       if (r)
+               goto out;
+-      pgpath->path.is_active = 1;
++      pgpath->is_active = 1;
+       m->current_pgpath = NULL;
+       if (!m->nr_valid_paths++ && m->queue_size)
+@@ -1295,7 +1296,7 @@ static int multipath_status(struct dm_ta
+                       list_for_each_entry(p, &pg->pgpaths, list) {
+                               DMEMIT("%s %s %u ", p->path.dev->name,
+-                                     p->path.is_active ? "A" : "F",
++                                     p->is_active ? "A" : "F",
+                                      p->fail_count);
+                               if (pg->ps.type->status)
+                                       sz += pg->ps.type->status(&pg->ps,
+--- a/drivers/md/dm-mpath.h
++++ b/drivers/md/dm-mpath.h
+@@ -13,8 +13,6 @@ struct dm_dev;
+ struct dm_path {
+       struct dm_dev *dev;     /* Read-only */
+-      unsigned is_active;     /* Read-only */
+-
+       void *pscontext;        /* For path-selector use */
+ };