diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2010-10-27 08:33:00 -0400 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2011-03-10 05:34:48 -0500 |
commit | 73a01a18b9c28a0fab1131ece5b0a9bc00a879b8 (patch) | |
tree | 36ed1ea31bd18def918717906a58355a77b39cba /drivers/block/drbd/drbd_actlog.c | |
parent | 67531718d8f1259f01ab84c2aa25f7b03c7afd46 (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.c | 10 |
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 | */ |
1010 | void __drbd_set_out_of_sync(struct drbd_conf *mdev, sector_t sector, int size, | 1010 | int __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 | ||
1053 | out: | 1053 | out: |
1054 | put_ldev(mdev); | 1054 | put_ldev(mdev); |
1055 | |||
1056 | return count; | ||
1055 | } | 1057 | } |
1056 | 1058 | ||
1057 | static | 1059 | static |