aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r--drivers/md/bitmap.c11
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 }