Don't forget to drain the digest in case we cannot satisfy a
checksum based resync or online-verify request.
It would additionally cause a protocoll error,
dropping the connection.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
        int rr, rv = 1;
        void *data;
 
+       if (!data_size)
+               return TRUE;
+
        page = drbd_pp_alloc(mdev, 1);
 
        data = kmap(page);
                            "no local data.\n");
                drbd_send_ack_rp(mdev, h->command == P_DATA_REQUEST ? P_NEG_DREPLY :
                                 P_NEG_RS_DREPLY , p);
-               return TRUE;
+               return drbd_drain_block(mdev, h->length - brps);
        }
 
        /* GFP_NOIO, because we must not cause arbitrary write-out: in a DRBD