diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2016-06-14 00:26:15 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-06-13 21:43:04 -0600 |
commit | 92d94ae66aebda5e4832d96e96b95117c44693b5 (patch) | |
tree | 08266c08a393aa5ca014d38d9813f61f74f5ae81 /drivers/block/drbd/drbd_receiver.c | |
parent | a5ca66c419410b4a26ab47b120d5424bd1d33700 (diff) |
drbd: Create the protocol feature THIN_RESYNC
If thinly provisioned volumes are used, during a resync the sync source
tries to find out if a block is deallocated. If it is deallocated, then
the resync target uses block_dev_issue_zeroout() on the range in
question.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index f5eef97ec47d..a50cc99aaf3b 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -48,7 +48,7 @@ #include "drbd_req.h" #include "drbd_vli.h" -#define PRO_FEATURES (FF_TRIM) +#define PRO_FEATURES (FF_TRIM | FF_THIN_RESYNC) struct packet_info { enum drbd_packet cmd; @@ -4991,6 +4991,9 @@ static int drbd_do_features(struct drbd_connection *connection) drbd_info(connection, "Agreed to%ssupport TRIM on protocol level\n", connection->agreed_features & FF_TRIM ? " " : " not "); + drbd_info(connection, "Agreed to%ssupport THIN_RESYNC on protocol level\n", + connection->agreed_features & FF_THIN_RESYNC ? " " : " not "); + return 1; incompat: |