[DRBD-cvs] drbd by phil; Various mirco fixes by LGE
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Sat, 17 Jan 2004 21:17:38 +0100 (CET)
DRBD CVS committal
Author : phil
Module : drbd
Dir : drbd/drbd
Modified Files:
Tag: rel-0_7-branch
drbd_int.h drbd_main.c
Log Message:
Various mirco fixes by LGE
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_int.h,v
retrieving revision 1.58.2.95
retrieving revision 1.58.2.96
diff -u -3 -r1.58.2.95 -r1.58.2.96
--- drbd_int.h 16 Jan 2004 13:26:43 -0000 1.58.2.95
+++ drbd_int.h 17 Jan 2004 20:17:38 -0000 1.58.2.96
@@ -42,19 +42,25 @@
left on all_requests...
look out for NBD_MAJOR in ll_rw_blk.c */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
/*lge: this hack is to get rid of the compiler warnings about
* 'do_nbd_request declared static but never defined'
* whilst forcing blk.h defines on
* though we probably do not need them, we do not use them...
* would not work without LOCAL_END_REQUEST
*/
-#define MAJOR_NR DRBD_MAJOR
-#define DEVICE_ON(device)
-#define DEVICE_OFF(device)
-#define DEVICE_NR(device) (MINOR(device))
-#define LOCAL_END_REQUEST
-#include <linux/blk.h>
-#define DRBD_MAJOR NBD_MAJOR
+# define MAJOR_NR DRBD_MAJOR
+# define DEVICE_ON(device)
+# define DEVICE_OFF(device)
+# define DEVICE_NR(device) (MINOR(device))
+# define LOCAL_END_REQUEST
+# include <linux/blk.h>
+# define DRBD_MAJOR NBD_MAJOR
+#else
+# include <linux/blkdev.h>
+# include <linux/bio.h>
+# define MAJOR_NR NBD_MAJOR
+#endif
#undef DEVICE_NAME
#define DEVICE_NAME "drbd"
@@ -695,7 +701,7 @@
spinlock_t tl_lock;
struct drbd_barrier* newest_barrier;
struct drbd_barrier* oldest_barrier;
- unsigned int flags;
+ unsigned long flags;
struct task_struct *send_task; /* about pid calling drbd_send */
spinlock_t send_task_lock;
sector_t rs_left; // blocks not up-to-date [unit sectors]
@@ -869,19 +875,14 @@
unsigned int cmd, unsigned long arg);
// drbd_dsender.c
-//extern int drbd_dsender(struct Drbd_thread *thi);
extern int drbd_worker(struct Drbd_thread *thi);
extern void enslaved_read_bh_end_io(struct buffer_head *bh, int uptodate);
extern void drbd_start_resync(drbd_dev *mdev, Drbd_CState side);
-extern unsigned long drbd_hash(struct buffer_head *bh);
// worker callbacks
extern int w_e_end_data_req (drbd_dev *mdev, struct drbd_work*w);
extern int w_e_end_rsdata_req (drbd_dev *mdev, struct drbd_work*w);
-extern int w_make_resync_request (drbd_dev *mdev, struct drbd_work*w);
extern int w_resync_finished (drbd_dev *mdev, struct drbd_work*w);
extern int w_resync_inactive (drbd_dev *mdev, struct drbd_work*w);
-extern int w_resync_source (drbd_dev *mdev, struct drbd_work*w);
-extern int w_start_resync (drbd_dev *mdev, struct drbd_work*w);
// drbd_receiver.c
extern int drbd_release_ee(drbd_dev* mdev,struct list_head* list);
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.98
retrieving revision 1.73.2.99
diff -u -3 -r1.73.2.98 -r1.73.2.99
--- drbd_main.c 15 Jan 2004 21:38:43 -0000 1.73.2.98
+++ drbd_main.c 17 Jan 2004 20:17:38 -0000 1.73.2.99
@@ -708,7 +708,7 @@
offset = (int)bh->b_data - (int)page_address(page);
do {
sent = mdev->data.socket->ops->sendpage(mdev->data.socket, page, offset, size, MSG_NOSIGNAL);
- if (sent == -EINTR) {
+ if (sent == -EAGAIN) {
// FIXME move "retry--" into drbd_retry_send()
if (drbd_retry_send(mdev,mdev->data.socket) && retry--)
continue;
@@ -872,10 +872,15 @@
do {
/* STRANGE
- * tcp_sendmsg does _not_ use its size parameter at all ???
+ * tcp_sendmsg does _not_ use its size parameter at all ?
+ *
+ * -EAGAIN on timeout, -EINTR on signal.
+ */
+ /* THINK
+ * do we need to block DRBD_SIG if sock == &meta.socket ??
*/
rv = sock_sendmsg(sock, &msg, iov.iov_len );
- if (rv == -EINTR) {
+ if (rv == -EAGAIN) {
// FIXME move "retry--" into drbd_retry_send()
if (drbd_retry_send(mdev,sock) && retry--)
continue;
@@ -893,7 +898,7 @@
// unlock_kernel();
if (rv <= 0) {
- if (rv != -EINTR) {
+ if (rv != -EAGAIN) {
ERR("%s_sendmsg returned %d\n",
sock == mdev->meta.socket ? "msock" : "sock",
rv);
@@ -1308,6 +1313,9 @@
SZO(struct buffer_head);
SZO(Drbd_Polymorph_Packet);
SZO(struct drbd_socket);
+ SZO(struct semaphore);
+ SZO(wait_queue_head_t);
+ SZO(spinlock_t);
return -EBUSY;
#endif