[DRBD-cvs] drbd by phil; * Various code cleanups. * Removed some ...
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Mon, 9 Feb 2004 11:36:59 +0100 (CET)
DRBD CVS committal
Author : phil
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_compat_wrappers.h drbd_dsender.c drbd_fs.c drbd_int.h
drbd_main.c drbd_proc.c drbd_receiver.c
Log Message:
* Various code cleanups.
* Removed some FIXMEs etc.
[Lars: Would be nice if you could have a look at these modifications.]
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.21
retrieving revision 1.1.2.22
diff -u -3 -r1.1.2.21 -r1.1.2.22
--- drbd_compat_wrappers.h 5 Feb 2004 15:17:36 -0000 1.1.2.21
+++ drbd_compat_wrappers.h 9 Feb 2004 10:36:54 -0000 1.1.2.22
@@ -484,9 +484,6 @@
bio->bi_end_io = drbd_dio_end;
bio->bi_next = 0;
- // FIXME D_ASSERT(??)
- // what else?
-
req->rq_status = RQ_DRBD_NOTHING;
}
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.71
retrieving revision 1.1.2.72
diff -u -3 -r1.1.2.71 -r1.1.2.72
--- drbd_dsender.c 9 Feb 2004 09:40:45 -0000 1.1.2.71
+++ drbd_dsender.c 9 Feb 2004 10:36:54 -0000 1.1.2.72
@@ -155,9 +155,9 @@
}
#else
-//#warning "FIXME"
+
/* used for synchronous meta data and bitmap IO
- * submitted by FIXME (I'd say worker only, but currently this is not true...)
+ * submitted by drbd_md_sync_page_io()
*/
int drbd_md_io_complete(struct bio *bio, unsigned int bytes_done, int error)
{
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_fs.c,v
retrieving revision 1.28.2.70
retrieving revision 1.28.2.71
diff -u -3 -r1.28.2.70 -r1.28.2.71
--- drbd_fs.c 9 Feb 2004 09:45:02 -0000 1.28.2.70
+++ drbd_fs.c 9 Feb 2004 10:36:54 -0000 1.28.2.71
@@ -156,8 +156,7 @@
drbd_set_my_capacity(mdev,size<<1);
mdev->la_size = size;
INFO("size = %lu KB\n",size);
- }
- //#warning "FIXME else { error handling }"
+ } else ERR("BM resizing failed. Leaving size unchanged\n");
}
return rv;
@@ -508,10 +507,10 @@
int drbd_set_state(drbd_dev *mdev,Drbd_State newstate)
{
+ NOT_IN_26(int minor = mdev-drbd_conf;)
- //#warning "FIXME actually must hold device_mutex!"
+ D_ASSERT(semaphore_is_locked(&mdev->device_mutex));
- NOT_IN_26(int minor = mdev-drbd_conf;)
if ( (newstate & 0x3) == mdev->state ) return 0; /* nothing to do */
// exactly one of sec or pri. not both.
@@ -739,6 +738,7 @@
drbd_determin_dev_size(mdev);
drbd_md_write(mdev); // Write mdev->la_size to disk.
//#warning "yet an other reason to serialize all state changes on a rw_semaphore"
+ // PRE: Please explain the issue.
if (mdev->cstate == Connected) drbd_send_param(mdev,0);
break;
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_int.h,v
retrieving revision 1.58.2.119
retrieving revision 1.58.2.120
diff -u -3 -r1.58.2.119 -r1.58.2.120
--- drbd_int.h 9 Feb 2004 09:40:45 -0000 1.58.2.119
+++ drbd_int.h 9 Feb 2004 10:36:54 -0000 1.58.2.120
@@ -318,33 +318,32 @@
MAX_OPT_CMD,
} Drbd_Packet_Cmd;
-// FIXME we should be able to define this away
-// no char* cmdname[], since I'm not sure the index is valid ...
static inline const char* cmdname(Drbd_Packet_Cmd cmd)
{
- switch (cmd) {
- case Data : return "Data";
- case DataReply : return "DataReply";
- case RecvAck : return "RecvAck";
- case WriteAck : return "WriteAck";
- case Barrier : return "Barrier";
- case BarrierAck : return "BarrierAck";
- case ReportParams : return "ReportParams";
- case ReportBitMap : return "ReportBitMap";
- case Ping : return "Ping";
- case PingAck : return "PingAck";
- case BecomeSyncTarget: return "BecomeSyncTarget";
- case BecomeSyncSource: return "BecomeSyncSource";
- case BecomeSec : return "BecomeSec";
- case WriteHint : return "WriteHint";
- case DataRequest : return "DataRequest";
- case RSDataRequest : return "RSDataRequest";
- case SyncParam : return "SyncParam";
- case MAX_CMD : return "MAX_CMD";
- case MayIgnore : return "MayIgnore";
- case MAX_OPT_CMD : return "MAX_OPT_CMD";
- default : return "Unknown";
- }
+ static const char *cmdnames[] = {
+ [Data] = "Data",
+ [DataReply] = "DataReply",
+ [Barrier] = "Barrier",
+ [ReportParams] = "ReportParams",
+ [ReportBitMap] = "ReportBitMap",
+ [BecomeSyncTarget] = "BecomeSyncTarget",
+ [BecomeSyncSource] = "BecomeSyncSource",
+ [BecomeSec] = "BecomeSec",
+ [WriteHint] = "WriteHint",
+ [DataRequest] = "DataRequest",
+ [RSDataRequest] = "RSDataRequest",
+ [SyncParam] = "SyncParam",
+ [Ping] = "Ping",
+ [PingAck] = "PingAck",
+ [RecvAck] = "RecvAck",
+ [WriteAck] = "WriteAck",
+ [NegAck] = "NegAck",
+ [NegDReply] = "NegDReply",
+ [BarrierAck] = "BarrierAck"
+ };
+
+ if(cmd < 0 || cmd > MAX_CMD) return "Unknown";
+ return cmdnames[cmd];
}
@@ -862,7 +861,7 @@
// drbd_receiver.c
extern int drbd_release_ee(drbd_dev* mdev,struct list_head* list);
-extern void drbd_init_ee(drbd_dev* mdev);
+extern int drbd_init_ee(drbd_dev* mdev);
extern void drbd_put_ee(drbd_dev* mdev,struct Tl_epoch_entry *e);
extern struct Tl_epoch_entry* drbd_get_ee(drbd_dev* mdev);
extern int recv_resync_read(drbd_dev* mdev, struct Pending_read *pr,
@@ -945,6 +944,15 @@
#include "drbd_compat_wrappers.h"
+
+static inline int semaphore_is_locked(struct semaphore* s)
+{
+ if(!down_trylock(s)) {
+ up(s);
+ return 0;
+ }
+ return 1;
+}
/* Returns the start sector for metadata, aligned to 4K
* which happens to be the capacity we announce for
* our lower level device if it includes the meta data
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.126
retrieving revision 1.73.2.127
diff -u -3 -r1.73.2.126 -r1.73.2.127
--- drbd_main.c 9 Feb 2004 09:40:45 -0000 1.73.2.126
+++ drbd_main.c 9 Feb 2004 10:36:54 -0000 1.73.2.127
@@ -89,8 +89,7 @@
#endif
#define DEVICE_REQUEST drbd_do_request
-//#warning "FIXME review the MODULE_* macros below"
-MODULE_AUTHOR("Philipp Reisner <philipp.reisner@gmx.at>");
+MODULE_AUTHOR("Philipp Reisner <phil@linbit.com>, Lars Ellenberg <lars@linbit.com>");
MODULE_DESCRIPTION("drbd - Distributed Replicated Block Device v" REL_VERSION);
MODULE_LICENSE("GPL");
MODULE_PARM(minor_count,"i");
@@ -133,12 +132,12 @@
int errno;
/************************* The transfer log start */
-STATIC void tl_init(drbd_dev *mdev)
+STATIC int tl_init(drbd_dev *mdev)
{
struct drbd_barrier *b;
b=kmalloc(sizeof(struct drbd_barrier),GFP_KERNEL);
- // FIXME no mem ;-)
+ if(!b) return 0;
INIT_LIST_HEAD(&b->requests);
b->next=0;
b->br_number=4711;
@@ -146,6 +145,8 @@
mdev->oldest_barrier = b;
mdev->newest_barrier = b;
+
+ return 1;
}
STATIC void tl_cleanup(drbd_dev *mdev)
@@ -1340,8 +1341,8 @@
if (!mdev->act_log) goto Enomem;
drbd_init_set_defaults(mdev);
- tl_init(mdev);
- drbd_init_ee(mdev);
+ if (!tl_init(mdev)) goto Enomem;
+ if (!drbd_init_ee(mdev)) goto Enomem;
}
#if CONFIG_PROC_FS
@@ -1387,7 +1388,6 @@
register_ioctl32_conversion(DRBD_IOCTL_SET_NET_CONFIG,NULL);
register_ioctl32_conversion(DRBD_IOCTL_SET_STATE,NULL);
register_ioctl32_conversion(DRBD_IOCTL_SET_SYNC_CONFIG,NULL);
- register_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_BOTH,NULL);
register_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_NET,NULL);
register_ioctl32_conversion(DRBD_IOCTL_WAIT_CONNECT,NULL);
register_ioctl32_conversion(DRBD_IOCTL_WAIT_SYNC,NULL);
@@ -1436,9 +1436,6 @@
{
int i;
-//#warning "FIXME increase module refcount with each setup device"
- /* then you need to tear down all devices
- * before you can remove the module */
for (i = 0; i < minor_count; i++) {
drbd_set_state(drbd_conf+i,Secondary);
drbd_sync_me(drbd_conf+i);
@@ -1460,7 +1457,6 @@
unregister_ioctl32_conversion(DRBD_IOCTL_SET_NET_CONFIG);
unregister_ioctl32_conversion(DRBD_IOCTL_SET_STATE);
unregister_ioctl32_conversion(DRBD_IOCTL_SET_SYNC_CONFIG);
- unregister_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_BOTH);
unregister_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_NET);
unregister_ioctl32_conversion(DRBD_IOCTL_WAIT_CONNECT);
unregister_ioctl32_conversion(DRBD_IOCTL_WAIT_SYNC);
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_proc.c,v
retrieving revision 1.8.2.18
retrieving revision 1.8.2.19
diff -u -3 -r1.8.2.18 -r1.8.2.19
--- drbd_proc.c 8 Feb 2004 12:26:14 -0000 1.8.2.18
+++ drbd_proc.c 9 Feb 2004 10:36:54 -0000 1.8.2.19
@@ -122,8 +122,7 @@
int rlen, i;
const char *sn;
- static const char *cstate_names[] =
- {
+ static const char *cstate_names[] = {
[Unconfigured] = "Unconfigured",
[StandAlone] = "StandAlone",
[Unconnected] = "Unconnected",
@@ -141,8 +140,7 @@
[PausedSyncS] = "PausedSyncS",
[PausedSyncT] = "PausedSyncT",
};
- static const char *state_names[] =
- {
+ static const char *state_names[] = {
[Primary] = "Primary",
[Secondary] = "Secondary",
[Unknown] = "Unknown"
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.106
retrieving revision 1.97.2.107
diff -u -3 -r1.97.2.106 -r1.97.2.107
--- drbd_receiver.c 9 Feb 2004 09:40:46 -0000 1.97.2.106
+++ drbd_receiver.c 9 Feb 2004 10:36:54 -0000 1.97.2.107
@@ -210,14 +210,15 @@
return page;
}
-void drbd_init_ee(drbd_dev *mdev)
+int drbd_init_ee(drbd_dev *mdev)
{
while(mdev->ee_vacant < EE_MININUM ) {
if(!drbd_alloc_ee(mdev,GFP_USER)) {
ERR("Failed to allocate %d EEs !",EE_MININUM);
- break;
+ return 0;
}
}
+ return 1;
}
int drbd_release_ee(drbd_dev *mdev,struct list_head* list)