|
@@ -457,6 +457,8 @@ enum {
|
|
/* to be used in drbd_device_post_work() */
|
|
/* to be used in drbd_device_post_work() */
|
|
GO_DISKLESS, /* tell worker to schedule cleanup before detach */
|
|
GO_DISKLESS, /* tell worker to schedule cleanup before detach */
|
|
DESTROY_DISK, /* tell worker to close backing devices and destroy related structures. */
|
|
DESTROY_DISK, /* tell worker to close backing devices and destroy related structures. */
|
|
|
|
+ MD_SYNC, /* tell worker to call drbd_md_sync() */
|
|
|
|
+ RS_START, /* tell worker to start resync/OV */
|
|
RS_PROGRESS, /* tell worker that resync made significant progress */
|
|
RS_PROGRESS, /* tell worker that resync made significant progress */
|
|
RS_DONE, /* tell worker that resync is done */
|
|
RS_DONE, /* tell worker that resync is done */
|
|
};
|
|
};
|
|
@@ -709,18 +711,10 @@ struct drbd_device {
|
|
unsigned long last_reattach_jif;
|
|
unsigned long last_reattach_jif;
|
|
struct drbd_work resync_work;
|
|
struct drbd_work resync_work;
|
|
struct drbd_work unplug_work;
|
|
struct drbd_work unplug_work;
|
|
- struct drbd_work md_sync_work;
|
|
|
|
- struct drbd_work start_resync_work;
|
|
|
|
struct timer_list resync_timer;
|
|
struct timer_list resync_timer;
|
|
struct timer_list md_sync_timer;
|
|
struct timer_list md_sync_timer;
|
|
struct timer_list start_resync_timer;
|
|
struct timer_list start_resync_timer;
|
|
struct timer_list request_timer;
|
|
struct timer_list request_timer;
|
|
-#ifdef DRBD_DEBUG_MD_SYNC
|
|
|
|
- struct {
|
|
|
|
- unsigned int line;
|
|
|
|
- const char* func;
|
|
|
|
- } last_md_mark_dirty;
|
|
|
|
-#endif
|
|
|
|
|
|
|
|
/* Used after attach while negotiating new disk state. */
|
|
/* Used after attach while negotiating new disk state. */
|
|
union drbd_state new_state_tmp;
|
|
union drbd_state new_state_tmp;
|
|
@@ -977,13 +971,7 @@ extern void __drbd_uuid_set(struct drbd_device *device, int idx, u64 val) __must
|
|
extern void drbd_md_set_flag(struct drbd_device *device, int flags) __must_hold(local);
|
|
extern void drbd_md_set_flag(struct drbd_device *device, int flags) __must_hold(local);
|
|
extern void drbd_md_clear_flag(struct drbd_device *device, int flags)__must_hold(local);
|
|
extern void drbd_md_clear_flag(struct drbd_device *device, int flags)__must_hold(local);
|
|
extern int drbd_md_test_flag(struct drbd_backing_dev *, int);
|
|
extern int drbd_md_test_flag(struct drbd_backing_dev *, int);
|
|
-#ifndef DRBD_DEBUG_MD_SYNC
|
|
|
|
extern void drbd_md_mark_dirty(struct drbd_device *device);
|
|
extern void drbd_md_mark_dirty(struct drbd_device *device);
|
|
-#else
|
|
|
|
-#define drbd_md_mark_dirty(m) drbd_md_mark_dirty_(m, __LINE__ , __func__ )
|
|
|
|
-extern void drbd_md_mark_dirty_(struct drbd_device *device,
|
|
|
|
- unsigned int line, const char *func);
|
|
|
|
-#endif
|
|
|
|
extern void drbd_queue_bitmap_io(struct drbd_device *device,
|
|
extern void drbd_queue_bitmap_io(struct drbd_device *device,
|
|
int (*io_fn)(struct drbd_device *),
|
|
int (*io_fn)(struct drbd_device *),
|
|
void (*done)(struct drbd_device *, int),
|
|
void (*done)(struct drbd_device *, int),
|