aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_actlog.c
diff options
context:
space:
mode:
authorPhilipp Reisner <philipp.reisner@linbit.com>2010-10-27 08:33:00 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 05:34:48 -0500
commit73a01a18b9c28a0fab1131ece5b0a9bc00a879b8 (patch)
tree36ed1ea31bd18def918717906a58355a77b39cba /drivers/block/drbd/drbd_actlog.c
parent67531718d8f1259f01ab84c2aa25f7b03c7afd46 (diff)
drbd: New packet for Ahead/Behind mode: P_OUT_OF_SYNC
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_actlog.c')
-rw-r--r--drivers/block/drbd/drbd_actlog.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c
index b4adb58c7472..33f6cc537d08 100644
--- a/drivers/block/drbd/drbd_actlog.c
+++ b/drivers/block/drbd/drbd_actlog.c
@@ -1007,22 +1007,22 @@ void __drbd_set_in_sync(struct drbd_conf *mdev, sector_t sector, int size,
1007 * called by tl_clear and drbd_send_dblock (==drbd_make_request). 1007 * called by tl_clear and drbd_send_dblock (==drbd_make_request).
1008 * so this can be _any_ process. 1008 * so this can be _any_ process.
1009 */ 1009 */
1010void __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector, int size, 1010int __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector, int size,
1011 const char *file, const unsigned int line) 1011 const char *file, const unsigned int line)
1012{ 1012{
1013 unsigned long sbnr, ebnr, lbnr, flags; 1013 unsigned long sbnr, ebnr, lbnr, flags;
1014 sector_t esector, nr_sectors; 1014 sector_t esector, nr_sectors;
1015 unsigned int enr, count; 1015 unsigned int enr, count = 0;
1016 struct lc_element *e; 1016 struct lc_element *e;
1017 1017
1018 if (size <= 0 || (size & 0x1ff) != 0 || size > DRBD_MAX_BIO_SIZE) { 1018 if (size <= 0 || (size & 0x1ff) != 0 || size > DRBD_MAX_BIO_SIZE) {
1019 dev_err(DEV, "sector: %llus, size: %d\n", 1019 dev_err(DEV, "sector: %llus, size: %d\n",
1020 (unsigned long long)sector, size); 1020 (unsigned long long)sector, size);
1021 return; 1021 return 0;
1022 } 1022 }
1023 1023
1024 if (!get_ldev(mdev)) 1024 if (!get_ldev(mdev))
1025 return; /* no disk, no metadata, no bitmap to set bits in */ 1025 return 0; /* no disk, no metadata, no bitmap to set bits in */
1026 1026
1027 nr_sectors = drbd_get_capacity(mdev->this_bdev); 1027 nr_sectors = drbd_get_capacity(mdev->this_bdev);
1028 esector = sector + (size >> 9) - 1; 1028 esector = sector + (size >> 9) - 1;
@@ -1052,6 +1052,8 @@ void __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector, int size,
1052 1052
1053out: 1053out:
1054 put_ldev(mdev); 1054 put_ldev(mdev);
1055
1056 return count;
1055} 1057}
1056 1058
1057static 1059static