[DRBD-cvs] drbd by phil; Applied Lars' 05b-bio.idiff.

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Tue, 27 Jan 2004 10:22:19 +0100 (CET)


DRBD CVS committal

Author  : phil
Module  : drbd

Dir     : drbd/drbd


Modified Files:
      Tag: rel-0_7-branch
	drbd_actlog.c drbd_compat_wrappers.h drbd_dsender.c drbd_fs.c 
	drbd_int.h drbd_main.c 


Log Message:
Applied Lars' 05b-bio.idiff. 

===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.62
retrieving revision 1.1.2.63
diff -u -3 -r1.1.2.62 -r1.1.2.63
--- drbd_actlog.c	27 Jan 2004 09:16:50 -0000	1.1.2.62
+++ drbd_actlog.c	27 Jan 2004 09:22:13 -0000	1.1.2.63
@@ -512,15 +512,8 @@
 
 	sector = drbd_md_ss(mdev) + MD_BM_OFFSET + enr/EXTENTS_PER_SECTOR;
 
-	if(sync) {
-		drbd_md_sync_page_io(mdev,sector,WRITE);
-		up(&mdev->md_io_mutex);
-	} else {
-#warning "FIXME pls remove ;)"
-		BUG(); // or do I miss something, Philipp?
-		// drbd_bio_set_end_io(&mdev->md_io_bio,drbd_async_eio);
-		// drbd_generic_make_request(WRITE,&mdev->md_io_bio);
-	}
+	drbd_md_sync_page_io(mdev,sector,WRITE);
+	up(&mdev->md_io_mutex);
 
 	mdev->bm_writ_cnt++;
 }
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -u -3 -r1.1.2.11 -r1.1.2.12
--- drbd_compat_wrappers.h	27 Jan 2004 09:16:50 -0000	1.1.2.11
+++ drbd_compat_wrappers.h	27 Jan 2004 09:22:13 -0000	1.1.2.12
@@ -1,10 +1,6 @@
 // currently only abstraction layer to get all references to buffer_head
 // and b_some_thing out of our .c files.
 
-// FIXME
-// some of these should not be "extern inline" but defined in kernel version
-// dependend .c files...
-
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 
 // b_end_io handlers
@@ -113,7 +109,6 @@
 	struct buffer_head * const bh = &e->private_bio;
 	memset(e, 0, sizeof(*e));
 
-	// BM_BLOCK_SIZE == PAGE_SIZE ! FIXME not necessarily on all arch!!
 	// bh->b_list   = BUF_LOCKED; // does it matter?
 	bh->b_size      = PAGE_SIZE;
 	bh->b_this_page = bh;
@@ -266,14 +261,6 @@
 	generic_make_request(rw, bh);
 }
 
-#warning "FIXME we need to check the return value"
-static inline int drbd_generic_make_request_wait(int rw, struct buffer_head *bh)
-{
-	generic_make_request(rw, bh);
-	wait_on_buffer(bh);
-	return test_bit(BH_Uptodate,&bh->b_state);
-}
-
 static inline void drbd_kick_lo(drbd_dev *mdev)
 {
 	run_task_queue(&tq_disk);
@@ -299,12 +286,10 @@
 }
 
 #else
-#warning "FIXME these do nonsense. Currently I only check whether it compiles!"
+#warning "FIXME these are still untested!"
 
 #include <linux/buffer_head.h> // for fsync_bdev
 
-extern void FIXME_DONT_USE(void); // unresolved symbol ;)
-
 /* see get_sb_bdev and bd_claim */
 extern char* drbd_sec_holder;
 
@@ -549,26 +534,6 @@
 	generic_make_request(bio);
 }
 
-#if 0
-/* FIXME
- * I'd rather use something like sync_page_io() from drivers/md/md.c
- * for our meta data io!  For now I only copied some of it here.
- */
-#warning "FIXME we need to check the return value"
-static inline int drbd_generic_make_request_wait(int rw, struct bio *bio)
-{
-	struct completion event;
-	bio->bi_rw = rw; //??
-	init_completion(&event);
-	bio->bi_private = &event;
-	bio->bi_end_io = drbd_generic_end_io;
-	generic_make_request(bio);
-	blk_run_queues();
-	wait_for_completion(&event);
-	return test_bit(BIO_UPTODATE, &bio->bi_flags);
-}
-#endif
-
 static inline void drbd_kick_lo(drbd_dev *mdev)
 {
 	blk_run_queue(bdev_get_queue(mdev->backing_bdev)); 
@@ -580,24 +545,3 @@
 	return _drbd_send_page(mdev,bvec->bv_page,bvec->bv_offset,bvec->bv_len);
 }
 #endif
-
-/***
- * common functions,
- * move back to drbd_int.h
- ***/
-
-// defined in drbd_dsender.c
-extern int
-drbd_md_sync_page_io(drbd_dev *mdev, unsigned long sector, int rw);
-
-/* Returns the start sector for metadata, aligned to 4K */
-static inline sector_t drbd_md_ss(drbd_dev *mdev)
-{
-	if( mdev->md_index == -1 ) {
-		return (  (drbd_get_lo_capacity(mdev) & ~7L)
-			- (MD_RESERVED_SIZE<<1) );
-	} else {
-		return 2 * MD_RESERVED_SIZE * mdev->md_index;
-	}
-}
-
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_dsender.c,v
retrieving revision 1.1.2.63
retrieving revision 1.1.2.64
diff -u -3 -r1.1.2.63 -r1.1.2.64
--- drbd_dsender.c	27 Jan 2004 09:16:50 -0000	1.1.2.63
+++ drbd_dsender.c	27 Jan 2004 09:22:13 -0000	1.1.2.64
@@ -65,23 +65,6 @@
 	complete((struct completion*)bh->b_private);
 }
 
-#if 0
-/* used for asynchronous meta data and bitmap IO
- * submitted by FIXME (I'd say worker only, but currently this is not true...)
- */
-void drbd_async_eio(drbd_bio_t *bh, int uptodate)
-{
-	struct Drbd_Conf *mdev;
-
-	mdev = container_of(bh,struct Drbd_Conf,md_io_bio);
-	PARANOIA_BUG_ON(!IS_VALID_MDEV(mdev));
-
-	mark_buffer_uptodate(bh, uptodate);
-	unlock_buffer(bh);
-	up(&mdev->md_io_mutex);
-}
-#endif
-
 /* reads on behalf of the partner,
  * "submitted" by the receiver
  */
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_fs.c,v
retrieving revision 1.28.2.53
retrieving revision 1.28.2.54
diff -u -3 -r1.28.2.53 -r1.28.2.54
--- drbd_fs.c	27 Jan 2004 09:16:50 -0000	1.28.2.53
+++ drbd_fs.c	27 Jan 2004 09:22:13 -0000	1.28.2.54
@@ -552,7 +552,7 @@
 		spin_unlock_irq(&mdev->al_lock);
 		if (t) lc_free(t);
 	}
-	
+
 	if (mdev->cstate > WFConnection)
 		drbd_send_sync_param(mdev,&sc);
 
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_int.h,v
retrieving revision 1.58.2.107
retrieving revision 1.58.2.108
diff -u -3 -r1.58.2.107 -r1.58.2.108
--- drbd_int.h	27 Jan 2004 09:16:50 -0000	1.58.2.107
+++ drbd_int.h	27 Jan 2004 09:22:13 -0000	1.58.2.108
@@ -839,6 +839,8 @@
 extern int drbd_worker(struct Drbd_thread *thi);
 extern void drbd_alter_sg(drbd_dev *mdev, int ng);
 extern void drbd_start_resync(drbd_dev *mdev, Drbd_CState side);
+// maybe rather drbd_main.c ?
+extern int drbd_md_sync_page_io(drbd_dev *mdev, unsigned long sector, int rw);
 // 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);
@@ -846,6 +848,7 @@
 extern int w_resync_inactive     (drbd_dev *mdev, struct drbd_work *w);
 extern int w_resume_next_sg      (drbd_dev* mdev, struct drbd_work *w);
 
+
 // drbd_receiver.c
 extern int drbd_release_ee(drbd_dev* mdev,struct list_head* list);
 extern void drbd_init_ee(drbd_dev* mdev);
@@ -929,6 +932,20 @@
  *************************/
 
 #include "drbd_compat_wrappers.h"
+
+/* 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
+ */
+static inline sector_t drbd_md_ss(drbd_dev *mdev)
+{
+	if( mdev->md_index == -1 ) {
+		return (  (drbd_get_lo_capacity(mdev) & ~7L)
+			- (MD_RESERVED_SIZE<<1) );
+	} else {
+		return 2 * MD_RESERVED_SIZE * mdev->md_index;
+	}
+}
 
 static inline void set_cstate(drbd_dev* mdev,Drbd_CState ns)
 {
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.113
retrieving revision 1.73.2.114
diff -u -3 -r1.73.2.113 -r1.73.2.114
--- drbd_main.c	27 Jan 2004 09:16:50 -0000	1.73.2.113
+++ drbd_main.c	27 Jan 2004 09:22:13 -0000	1.73.2.114
@@ -782,8 +782,6 @@
 	sigset_t old_blocked;
 	Drbd_Data_Packet p;
 
-	// D_ASSERT(FIXME)
-
 	p.head.magic   = BE_DRBD_MAGIC;
 	p.head.command = cpu_to_be16(cmd);
 	p.head.length  = cpu_to_be16( sizeof(p)-sizeof(Drbd_Header)