[DRBD-cvs] drbd by phil; random odds and ends. Nothing worth to m...
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Wed, 18 Feb 2004 16:42:38 +0100 (CET)
DRBD CVS committal
Author : phil
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_dsender.c drbd_main.c drbd_receiver.c drbd_req-2.4.c
Log Message:
random odds and ends. Nothing worth to mention.
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.77
retrieving revision 1.1.2.78
diff -u -3 -r1.1.2.77 -r1.1.2.78
--- drbd_dsender.c 18 Feb 2004 12:21:17 -0000 1.1.2.77
+++ drbd_dsender.c 18 Feb 2004 15:42:32 -0000 1.1.2.78
@@ -168,13 +168,15 @@
if (!uptodate) {
// for the panic:
- drbd_chk_io_error(mdev,!uptodate);
+ drbd_chk_io_error(mdev,!uptodate); // handle panic and detach.
+ if(mdev->on_io_error == PassOn) goto pass_on;
// ok, if we survived this, retry:
// FIXME sector ...
ERR("local read failed, retrying remotely\n");
req->w.cb = w_read_retry_remote;
drbd_queue_work(mdev,&mdev->data.work,&req->w);
} else {
+ pass_on:
bh->b_end_io(req->master_bio,uptodate);
INVALIDATE_MAGIC(req);
@@ -321,14 +323,15 @@
PARANOIA_BUG_ON(!VALID_POINTER(req));
if (error) {
- // for the panic:
- drbd_chk_io_error(mdev,error);
+ drbd_chk_io_error(mdev,error); // handle panic and detach.
+ if(mdev->on_io_error == PassOn) goto pass_on;
// ok, if we survived this, retry:
// FIXME sector ...
ERR("local read failed, retrying remotely\n");
req->w.cb = w_read_retry_remote;
drbd_queue_work(mdev,&mdev->data.work,&req->w);
} else {
+ pass_on:
bio_endio(req->master_bio,req->master_bio->bi_size,error);
INVALIDATE_MAGIC(req);
@@ -346,15 +349,10 @@
if ( mdev->cstate <= Connected ||
test_bit(PARTNER_DISKLESS,&mdev->flags) ) {
-
- // FIXME
- // local read failed, and we cannot retry.
- // drbd_chk_io_error has already been called.
- // what now: PANIC ??
-
- // propagate, cannot do anything about it.
+ ERR("WE ARE LOST. Local IO failure, no peer.\n");
drbd_bio_endio(req->master_bio,0);
- return 0; // worker will abort.
+ // TODO: Do something like panic() or shut_down_cluster().
+ return 1;
}
// FIXME: what if partner was SyncTarget, and is out of sync for
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.132
retrieving revision 1.73.2.133
diff -u -3 -r1.73.2.132 -r1.73.2.133
--- drbd_main.c 18 Feb 2004 12:21:18 -0000 1.73.2.132
+++ drbd_main.c 18 Feb 2004 15:42:32 -0000 1.73.2.133
@@ -1416,7 +1416,6 @@
register_ioctl32_conversion(DRBD_IOCTL_GET_VERSION,NULL);
register_ioctl32_conversion(DRBD_IOCTL_INVALIDATE,NULL);
register_ioctl32_conversion(DRBD_IOCTL_INVALIDATE_REM,NULL);
- register_ioctl32_conversion(DRBD_IOCTL_SECONDARY_REM,NULL);
register_ioctl32_conversion(DRBD_IOCTL_SET_DISK_CONFIG,NULL);
register_ioctl32_conversion(DRBD_IOCTL_SET_DISK_SIZE,NULL);
register_ioctl32_conversion(DRBD_IOCTL_SET_NET_CONFIG,NULL);
@@ -1489,7 +1488,6 @@
unregister_ioctl32_conversion(DRBD_IOCTL_GET_VERSION);
unregister_ioctl32_conversion(DRBD_IOCTL_INVALIDATE);
unregister_ioctl32_conversion(DRBD_IOCTL_INVALIDATE_REM);
- unregister_ioctl32_conversion(DRBD_IOCTL_SECONDARY_REM);
unregister_ioctl32_conversion(DRBD_IOCTL_SET_DISK_CONFIG);
unregister_ioctl32_conversion(DRBD_IOCTL_SET_DISK_SIZE);
unregister_ioctl32_conversion(DRBD_IOCTL_SET_NET_CONFIG);
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.112
retrieving revision 1.97.2.113
diff -u -3 -r1.97.2.112 -r1.97.2.113
--- drbd_receiver.c 16 Feb 2004 20:39:00 -0000 1.97.2.112
+++ drbd_receiver.c 18 Feb 2004 15:42:32 -0000 1.97.2.113
@@ -1700,7 +1700,7 @@
spin_unlock(&mdev->pr_lock);
ERR("Get NegDReply. WE ARE LOST. We lost our up-to-date disk.\n");
- // TODO: Do simething like panic() or shut_down_cluster().
+ // TODO: Do something like panic() or shut_down_cluster().
return TRUE;
}
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_req-2.4.c,v
retrieving revision 1.33.2.56
retrieving revision 1.33.2.57
diff -u -3 -r1.33.2.56 -r1.33.2.57
--- drbd_req-2.4.c 18 Feb 2004 12:21:18 -0000 1.33.2.56
+++ drbd_req-2.4.c 18 Feb 2004 15:42:32 -0000 1.33.2.57
@@ -275,31 +275,6 @@
*/
drbd_send_dblock(mdev,req);
} else if (target_area_out_of_sync) {
- #if 0
- /* lge: I do not like this branch,
- * and it currently does not work anyways...
- */
- spin_lock(&mdev->pr_lock);
- pr=drbd_find_read(sector,&mdev->resync_reads);
- if(pr) {
- INFO("Upgraded a resync read\n");
-
- pr->cause |= Application;
- inc_ap_pending(mdev);
- pr->d.master_bio=bio;
- list_del(&pr->w.list);
- list_add(&pr->w.list,&mdev->app_reads);
- spin_unlock(&mdev->pr_lock);
- /* Ok, everything arranged.
- * since reads are never done
- * on both nodes at the same time,
- * we just:
- */
- // up_read(mdev->device_lock);
- return 0;
- }
- spin_unlock(&mdev->pr_lock);
- #endif
drbd_read_remote(mdev,req);
} else {
// this node is diskless ...