Commit 6850c442 authored by Lars Ellenberg's avatar Lars Ellenberg Committed by Philipp Reisner

drbd: get rid of unused debug code

Long time ago, we had paranoia code in the bitmap that allocated one
extra word, assigned a magic value, and checked on every occasion that
the magic value was still unchanged.

That debug code is unused, the extra long word complicates code a bit.
Get rid of it.
Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
parent 4b0715f0
...@@ -488,10 +488,7 @@ static int bm_clear_surplus(struct drbd_bitmap *b) ...@@ -488,10 +488,7 @@ static int bm_clear_surplus(struct drbd_bitmap *b)
* on disk and in core memory alike */ * on disk and in core memory alike */
mask = cpu_to_lel(mask); mask = cpu_to_lel(mask);
/* because of the "extra long to catch oob access" we allocate in p_addr = bm_map_pidx(b, b->bm_number_of_pages - 1);
* drbd_bm_resize, bm_number_of_pages -1 is not necessarily the page
* containing the last _relevant_ bitmap word */
p_addr = bm_map_pidx(b, bm_bit_to_page_idx(b, b->bm_bits - 1));
bm = p_addr + (tmp/BITS_PER_LONG); bm = p_addr + (tmp/BITS_PER_LONG);
if (mask) { if (mask) {
/* If mask != 0, we are not exactly aligned, so bm now points /* If mask != 0, we are not exactly aligned, so bm now points
...@@ -527,10 +524,7 @@ static void bm_set_surplus(struct drbd_bitmap *b) ...@@ -527,10 +524,7 @@ static void bm_set_surplus(struct drbd_bitmap *b)
* on disk and in core memory alike */ * on disk and in core memory alike */
mask = cpu_to_lel(mask); mask = cpu_to_lel(mask);
/* because of the "extra long to catch oob access" we allocate in p_addr = bm_map_pidx(b, b->bm_number_of_pages - 1);
* drbd_bm_resize, bm_number_of_pages -1 is not necessarily the page
* containing the last _relevant_ bitmap word */
p_addr = bm_map_pidx(b, bm_bit_to_page_idx(b, b->bm_bits - 1));
bm = p_addr + (tmp/BITS_PER_LONG); bm = p_addr + (tmp/BITS_PER_LONG);
if (mask) { if (mask) {
/* If mask != 0, we are not exactly aligned, so bm now points /* If mask != 0, we are not exactly aligned, so bm now points
...@@ -556,15 +550,10 @@ static unsigned long bm_count_bits(struct drbd_bitmap *b) ...@@ -556,15 +550,10 @@ static unsigned long bm_count_bits(struct drbd_bitmap *b)
unsigned long *p_addr; unsigned long *p_addr;
unsigned long bits = 0; unsigned long bits = 0;
unsigned long mask = (1UL << (b->bm_bits & BITS_PER_LONG_MASK)) -1; unsigned long mask = (1UL << (b->bm_bits & BITS_PER_LONG_MASK)) -1;
int idx, last_page, i, last_word; int idx, i, last_word;
/* because of the "extra long to catch oob access" we allocate in
* drbd_bm_resize, bm_number_of_pages -1 is not necessarily the page
* containing the last _relevant_ bitmap word */
last_page = bm_bit_to_page_idx(b, b->bm_bits-1);
/* all but last page */ /* all but last page */
for (idx = 0; idx < last_page; idx++) { for (idx = 0; idx < b->bm_number_of_pages - 1; idx++) {
p_addr = __bm_map_pidx(b, idx, KM_USER0); p_addr = __bm_map_pidx(b, idx, KM_USER0);
for (i = 0; i < LWPP; i++) for (i = 0; i < LWPP; i++)
bits += hweight_long(p_addr[i]); bits += hweight_long(p_addr[i]);
...@@ -627,7 +616,7 @@ static void bm_memset(struct drbd_bitmap *b, size_t offset, int c, size_t len) ...@@ -627,7 +616,7 @@ static void bm_memset(struct drbd_bitmap *b, size_t offset, int c, size_t len)
int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits) int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits)
{ {
struct drbd_bitmap *b = mdev->bitmap; struct drbd_bitmap *b = mdev->bitmap;
unsigned long bits, words, owords, obits, *p_addr, *bm; unsigned long bits, words, owords, obits;
unsigned long want, have, onpages; /* number of pages */ unsigned long want, have, onpages; /* number of pages */
struct page **npages, **opages = NULL; struct page **npages, **opages = NULL;
int err = 0, growing; int err = 0, growing;
...@@ -681,8 +670,7 @@ int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits) ...@@ -681,8 +670,7 @@ int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits)
} }
} }
/* one extra long to catch off by one errors */ want = ALIGN(words*sizeof(long), PAGE_SIZE) >> PAGE_SHIFT;
want = ALIGN((words+1)*sizeof(long), PAGE_SIZE) >> PAGE_SHIFT;
have = b->bm_number_of_pages; have = b->bm_number_of_pages;
if (want == have) { if (want == have) {
D_ASSERT(b->bm_pages != NULL); D_ASSERT(b->bm_pages != NULL);
...@@ -728,11 +716,6 @@ int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits) ...@@ -728,11 +716,6 @@ int drbd_bm_resize(struct drbd_conf *mdev, sector_t capacity, int set_new_bits)
bm_free_pages(opages + want, have - want); bm_free_pages(opages + want, have - want);
} }
p_addr = bm_map_pidx(b, bm_word_to_page_idx(b, words));
bm = p_addr + MLPP(words);
*bm = DRBD_MAGIC;
bm_unmap(p_addr);
(void)bm_clear_surplus(b); (void)bm_clear_surplus(b);
spin_unlock_irq(&b->bm_lock); spin_unlock_irq(&b->bm_lock);
...@@ -845,7 +828,6 @@ void drbd_bm_merge_lel(struct drbd_conf *mdev, size_t offset, size_t number, ...@@ -845,7 +828,6 @@ void drbd_bm_merge_lel(struct drbd_conf *mdev, size_t offset, size_t number,
*/ */
if (end == b->bm_words) if (end == b->bm_words)
b->bm_set -= bm_clear_surplus(b); b->bm_set -= bm_clear_surplus(b);
spin_unlock_irq(&b->bm_lock); spin_unlock_irq(&b->bm_lock);
} }
...@@ -1030,7 +1012,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id ...@@ -1030,7 +1012,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id
struct bm_aio_ctx ctx = struct bm_aio_ctx ctx =
{ .flags = lazy_writeout_upper_idx ? BM_AIO_COPY_PAGES : 0 }; { .flags = lazy_writeout_upper_idx ? BM_AIO_COPY_PAGES : 0 };
struct drbd_bitmap *b = mdev->bitmap; struct drbd_bitmap *b = mdev->bitmap;
int last_page, i, count = 0; int num_pages, i, count = 0;
unsigned long now; unsigned long now;
char ppb[10]; char ppb[10];
int err = 0; int err = 0;
...@@ -1046,10 +1028,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id ...@@ -1046,10 +1028,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id
if (!ctx.flags) if (!ctx.flags)
WARN_ON(!bm_is_locked(b)); WARN_ON(!bm_is_locked(b));
/* because of the "extra long to catch oob access" we allocate in num_pages = b->bm_number_of_pages;
* drbd_bm_resize, bm_number_of_pages -1 is not necessarily the page
* containing the last _relevant_ bitmap word */
last_page = bm_word_to_page_idx(b, b->bm_words - 1);
now = jiffies; now = jiffies;
ctx.mdev = mdev; ctx.mdev = mdev;
...@@ -1058,7 +1037,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id ...@@ -1058,7 +1037,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id
ctx.error = 0; ctx.error = 0;
/* let the layers below us try to merge these bios... */ /* let the layers below us try to merge these bios... */
for (i = 0; i <= last_page; i++) { for (i = 0; i < num_pages; i++) {
/* ignore completely unchanged pages */ /* ignore completely unchanged pages */
if (lazy_writeout_upper_idx && i == lazy_writeout_upper_idx) if (lazy_writeout_upper_idx && i == lazy_writeout_upper_idx)
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment