Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933579AbbFJHtd (ORCPT ); Wed, 10 Jun 2015 03:49:33 -0400 Received: from victor.provo.novell.com ([137.65.250.26]:60483 "EHLO prv3-mh.provo.novell.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754253AbbFJHtE (ORCPT ); Wed, 10 Jun 2015 03:49:04 -0400 From: Nick Wang To: philipp.reisner@linbit.com, lars.ellenberg@linbit.com, drbd-dev@lists.linbit.com Cc: linux-kernel@vger.kernel.org, nwang@suse.com Subject: [PATCH 03/10] A function to zero out drbd backing device. Date: Wed, 10 Jun 2015 15:48:22 +0800 Message-Id: <1433922509-10280-4-git-send-email-nwang@suse.com> X-Mailer: git-send-email 1.8.4.5 In-Reply-To: <1433922509-10280-1-git-send-email-nwang@suse.com> References: <1433922509-10280-1-git-send-email-nwang@suse.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2130 Lines: 65 A function to zero out local backing device. Signed-off-by: Nick Wang CC: Philipp Reisner CC: Lars Ellenberg CC: drbd-dev@lists.linbit.com CC: linux-kernel@vger.kernel.org --- drbd/drbd_int.h | 1 + drbd/drbd_receiver.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/drbd/drbd_int.h b/drbd/drbd_int.h index 08d6648..9cc0ef9 100644 --- a/drbd/drbd_int.h +++ b/drbd/drbd_int.h @@ -1662,6 +1662,7 @@ extern void drbd_send_acks_wf(struct work_struct *ws); extern bool drbd_rs_c_min_rate_throttle(struct drbd_device *device); extern bool drbd_rs_should_slow_down(struct drbd_device *device, sector_t sector, bool throttle_if_app_is_waiting); +extern int zero_out_local_device(struct drbd_device *device); extern int drbd_submit_peer_request(struct drbd_device *, struct drbd_peer_request *, const unsigned, const int); diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c index 5e6b149..47b8fe5 100644 --- a/drbd/drbd_receiver.c +++ b/drbd/drbd_receiver.c @@ -1594,6 +1594,27 @@ void drbd_bump_write_ordering(struct drbd_resource *resource, struct drbd_backin void conn_wait_active_ee_empty(struct drbd_connection *connection); /** + * zero_out_local_device() + * @device: DRBD device. + * + * Description: + * Zero out drbd backing device when creating new uuid. + * +**/ +int zero_out_local_device(struct drbd_device *device) +{ + struct block_device *bdev; + + bdev = device->ldev->backing_bdev; + if (device->ldev->known_size != drbd_get_capacity(bdev)) + device->ldev->known_size = drbd_get_capacity(bdev); + + /* zero out the backing device */ + return blkdev_issue_zeroout(bdev, 0, + device->ldev->known_size , GFP_NOIO, false); +} + +/** * drbd_submit_peer_request() * @device: DRBD device. * @peer_req: peer request -- 1.8.4.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/