summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_receiver.c
diff options
context:
space:
mode:
authorPhilipp Reisner2016-06-14 00:26:15 +0200
committerJens Axboe2016-06-14 05:43:04 +0200
commit92d94ae66aebda5e4832d96e96b95117c44693b5 (patch)
tree08266c08a393aa5ca014d38d9813f61f74f5ae81 /drivers/block/drbd/drbd_receiver.c
parentdrbd: Introduce new disk config option rs-discard-granularity (diff)
downloadkernel-qcow2-linux-92d94ae66aebda5e4832d96e96b95117c44693b5.tar.gz
kernel-qcow2-linux-92d94ae66aebda5e4832d96e96b95117c44693b5.tar.xz
kernel-qcow2-linux-92d94ae66aebda5e4832d96e96b95117c44693b5.zip
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.c5
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: