[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)