summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPhilipp Reisner2011-07-01 17:00:57 +0200
committerPhilipp Reisner2012-11-08 16:57:50 +0100
commit9510b2411d365133ed6990d0bcb42be5876bdb66 (patch)
treeaad11c06048ab7958cc4d0c66d6cf5fca3aed9cd /drivers
parentdrbd: Improve compatibility with drbd's older than 8.3.7 (diff)
downloadkernel-qcow2-linux-9510b2411d365133ed6990d0bcb42be5876bdb66.tar.gz
kernel-qcow2-linux-9510b2411d365133ed6990d0bcb42be5876bdb66.tar.xz
kernel-qcow2-linux-9510b2411d365133ed6990d0bcb42be5876bdb66.zip
drbd: Fixed state transitions in case reading meta data failes
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/drbd/drbd_nl.c2
-rw-r--r--drivers/block/drbd/drbd_state.c7
2 files changed, 1 insertions, 8 deletions
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 838c3cd54cdd..97d1dab045d2 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -1645,7 +1645,7 @@ int drbd_adm_attach(struct sk_buff *skb, struct genl_info *info)
force_diskless_dec:
put_ldev(mdev);
force_diskless:
- drbd_force_state(mdev, NS(disk, D_FAILED));
+ drbd_force_state(mdev, NS(disk, D_DISKLESS));
drbd_md_sync(mdev);
fail:
conn_reconfig_done(mdev->tconn);
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index 2cf69b25f1e7..4c13a6f4f184 100644
--- a/drivers/block/drbd/drbd_state.c
+++ b/drivers/block/drbd/drbd_state.c
@@ -655,13 +655,6 @@ is_valid_transition(union drbd_state os, union drbd_state ns)
if (ns.disk == D_FAILED && os.disk == D_DISKLESS)
rv = SS_IS_DISKLESS;
- /* if we are only D_ATTACHING yet,
- * we can (and should) go directly to D_DISKLESS. */
- if (ns.disk == D_FAILED && os.disk == D_ATTACHING) {
- printk("TODO: FIX ME\n");
- rv = SS_IS_DISKLESS;
- }
-
return rv;
}