Background drbd device work for zeroing out device.

Signed-off-by: Nick Wang <[email protected]>
CC: Philipp Reisner <[email protected]>
CC: Lars Ellenberg <[email protected]>
CC: [email protected]
CC: [email protected]
---
 drbd/drbd_int.h    | 3 +++
 drbd/drbd_worker.c | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/drbd/drbd_int.h b/drbd/drbd_int.h
index dd680a9..287ffd7 100644
--- a/drbd/drbd_int.h
+++ b/drbd/drbd_int.h
@@ -622,6 +622,9 @@ enum {
        RS_START,               /* tell worker to start resync/OV */
        RS_PROGRESS,            /* tell worker that resync made significant 
progress */
        RS_DONE,                /* tell worker that resync is done */
+       P_ZERO_START,           /* tell worker to zero out device */
+       S_ZERO_START,           /* tell worker to zero out device as requested*/
+
        /* used for zero out device */
        ZERO_DONE,              /* succeed on zero out a device */
        ZERO_FAIL,              /* fail to zero out a device */
diff --git a/drbd/drbd_worker.c b/drbd/drbd_worker.c
index 293aa27..23e82c1 100644
--- a/drbd/drbd_worker.c
+++ b/drbd/drbd_worker.c
@@ -2070,6 +2070,10 @@ static void do_device_work(struct drbd_device *device, 
const unsigned long todo)
                drbd_ldev_destroy(device);
        if (test_bit(RS_START, &todo))
                do_start_resync(device);
+       if (test_bit(P_ZERO_START, &todo))
+               require_zero_out_local_device(device);
+       if (test_bit(S_ZERO_START, &todo))
+               receive_zero_out_local_device(device);
 }
 
 #define DRBD_DEVICE_WORK_MASK  \
@@ -2079,6 +2083,8 @@ static void do_device_work(struct drbd_device *device, 
const unsigned long todo)
        |(1UL << RS_START)      \
        |(1UL << RS_PROGRESS)   \
        |(1UL << RS_DONE)       \
+       |(1UL << P_ZERO_START)  \
+       |(1UL << S_ZERO_START)  \
        )
 
 static unsigned long get_work_bits(unsigned long *flags)
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to