diff options
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 9a35320fb59f..5c9362792f1d 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
@@ -347,7 +347,7 @@ static void write_page(struct bitmap *bitmap, struct page *page, int wait) | |||
347 | atomic_inc(&bitmap->pending_writes); | 347 | atomic_inc(&bitmap->pending_writes); |
348 | set_buffer_locked(bh); | 348 | set_buffer_locked(bh); |
349 | set_buffer_mapped(bh); | 349 | set_buffer_mapped(bh); |
350 | submit_bh(WRITE | REQ_UNPLUG | REQ_SYNC, bh); | 350 | submit_bh(WRITE | REQ_SYNC, bh); |
351 | bh = bh->b_this_page; | 351 | bh = bh->b_this_page; |
352 | } | 352 | } |
353 | 353 | ||
@@ -854,7 +854,7 @@ static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block) | |||
854 | if (bitmap->flags & BITMAP_HOSTENDIAN) | 854 | if (bitmap->flags & BITMAP_HOSTENDIAN) |
855 | set_bit(bit, kaddr); | 855 | set_bit(bit, kaddr); |
856 | else | 856 | else |
857 | ext2_set_bit(bit, kaddr); | 857 | __test_and_set_bit_le(bit, kaddr); |
858 | kunmap_atomic(kaddr, KM_USER0); | 858 | kunmap_atomic(kaddr, KM_USER0); |
859 | PRINTK("set file bit %lu page %lu\n", bit, page->index); | 859 | PRINTK("set file bit %lu page %lu\n", bit, page->index); |
860 | } | 860 | } |
@@ -1050,7 +1050,7 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start) | |||
1050 | if (bitmap->flags & BITMAP_HOSTENDIAN) | 1050 | if (bitmap->flags & BITMAP_HOSTENDIAN) |
1051 | b = test_bit(bit, paddr); | 1051 | b = test_bit(bit, paddr); |
1052 | else | 1052 | else |
1053 | b = ext2_test_bit(bit, paddr); | 1053 | b = test_bit_le(bit, paddr); |
1054 | kunmap_atomic(paddr, KM_USER0); | 1054 | kunmap_atomic(paddr, KM_USER0); |
1055 | if (b) { | 1055 | if (b) { |
1056 | /* if the disk bit is set, set the memory bit */ | 1056 | /* if the disk bit is set, set the memory bit */ |
@@ -1226,7 +1226,7 @@ void bitmap_daemon_work(mddev_t *mddev) | |||
1226 | clear_bit(file_page_offset(bitmap, j), | 1226 | clear_bit(file_page_offset(bitmap, j), |
1227 | paddr); | 1227 | paddr); |
1228 | else | 1228 | else |
1229 | ext2_clear_bit(file_page_offset(bitmap, j), | 1229 | __test_and_clear_bit_le(file_page_offset(bitmap, j), |
1230 | paddr); | 1230 | paddr); |
1231 | kunmap_atomic(paddr, KM_USER0); | 1231 | kunmap_atomic(paddr, KM_USER0); |
1232 | } else | 1232 | } else |
@@ -1339,8 +1339,7 @@ int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sect | |||
1339 | prepare_to_wait(&bitmap->overflow_wait, &__wait, | 1339 | prepare_to_wait(&bitmap->overflow_wait, &__wait, |
1340 | TASK_UNINTERRUPTIBLE); | 1340 | TASK_UNINTERRUPTIBLE); |
1341 | spin_unlock_irq(&bitmap->lock); | 1341 | spin_unlock_irq(&bitmap->lock); |
1342 | md_unplug(bitmap->mddev); | 1342 | io_schedule(); |
1343 | schedule(); | ||
1344 | finish_wait(&bitmap->overflow_wait, &__wait); | 1343 | finish_wait(&bitmap->overflow_wait, &__wait); |
1345 | continue; | 1344 | continue; |
1346 | } | 1345 | } |