diff options
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index cdf36b1e9aa6..045e086144ad 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
@@ -457,7 +457,7 @@ void bitmap_update_sb(struct bitmap *bitmap) | |||
457 | return; | 457 | return; |
458 | } | 458 | } |
459 | spin_unlock_irqrestore(&bitmap->lock, flags); | 459 | spin_unlock_irqrestore(&bitmap->lock, flags); |
460 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 460 | sb = kmap_atomic(bitmap->sb_page); |
461 | sb->events = cpu_to_le64(bitmap->mddev->events); | 461 | sb->events = cpu_to_le64(bitmap->mddev->events); |
462 | if (bitmap->mddev->events < bitmap->events_cleared) | 462 | if (bitmap->mddev->events < bitmap->events_cleared) |
463 | /* rocking back to read-only */ | 463 | /* rocking back to read-only */ |
@@ -467,7 +467,7 @@ void bitmap_update_sb(struct bitmap *bitmap) | |||
467 | /* Just in case these have been changed via sysfs: */ | 467 | /* Just in case these have been changed via sysfs: */ |
468 | sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ); | 468 | sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ); |
469 | sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind); | 469 | sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind); |
470 | kunmap_atomic(sb, KM_USER0); | 470 | kunmap_atomic(sb); |
471 | write_page(bitmap, bitmap->sb_page, 1); | 471 | write_page(bitmap, bitmap->sb_page, 1); |
472 | } | 472 | } |
473 | 473 | ||
@@ -478,7 +478,7 @@ void bitmap_print_sb(struct bitmap *bitmap) | |||
478 | 478 | ||
479 | if (!bitmap || !bitmap->sb_page) | 479 | if (!bitmap || !bitmap->sb_page) |
480 | return; | 480 | return; |
481 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 481 | sb = kmap_atomic(bitmap->sb_page); |
482 | printk(KERN_DEBUG "%s: bitmap file superblock:\n", bmname(bitmap)); | 482 | printk(KERN_DEBUG "%s: bitmap file superblock:\n", bmname(bitmap)); |
483 | printk(KERN_DEBUG " magic: %08x\n", le32_to_cpu(sb->magic)); | 483 | printk(KERN_DEBUG " magic: %08x\n", le32_to_cpu(sb->magic)); |
484 | printk(KERN_DEBUG " version: %d\n", le32_to_cpu(sb->version)); | 484 | printk(KERN_DEBUG " version: %d\n", le32_to_cpu(sb->version)); |
@@ -497,7 +497,7 @@ void bitmap_print_sb(struct bitmap *bitmap) | |||
497 | printk(KERN_DEBUG " sync size: %llu KB\n", | 497 | printk(KERN_DEBUG " sync size: %llu KB\n", |
498 | (unsigned long long)le64_to_cpu(sb->sync_size)/2); | 498 | (unsigned long long)le64_to_cpu(sb->sync_size)/2); |
499 | printk(KERN_DEBUG "max write behind: %d\n", le32_to_cpu(sb->write_behind)); | 499 | printk(KERN_DEBUG "max write behind: %d\n", le32_to_cpu(sb->write_behind)); |
500 | kunmap_atomic(sb, KM_USER0); | 500 | kunmap_atomic(sb); |
501 | } | 501 | } |
502 | 502 | ||
503 | /* | 503 | /* |
@@ -525,7 +525,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap) | |||
525 | } | 525 | } |
526 | bitmap->sb_page->index = 0; | 526 | bitmap->sb_page->index = 0; |
527 | 527 | ||
528 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 528 | sb = kmap_atomic(bitmap->sb_page); |
529 | 529 | ||
530 | sb->magic = cpu_to_le32(BITMAP_MAGIC); | 530 | sb->magic = cpu_to_le32(BITMAP_MAGIC); |
531 | sb->version = cpu_to_le32(BITMAP_MAJOR_HI); | 531 | sb->version = cpu_to_le32(BITMAP_MAJOR_HI); |
@@ -533,7 +533,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap) | |||
533 | chunksize = bitmap->mddev->bitmap_info.chunksize; | 533 | chunksize = bitmap->mddev->bitmap_info.chunksize; |
534 | BUG_ON(!chunksize); | 534 | BUG_ON(!chunksize); |
535 | if (!is_power_of_2(chunksize)) { | 535 | if (!is_power_of_2(chunksize)) { |
536 | kunmap_atomic(sb, KM_USER0); | 536 | kunmap_atomic(sb); |
537 | printk(KERN_ERR "bitmap chunksize not a power of 2\n"); | 537 | printk(KERN_ERR "bitmap chunksize not a power of 2\n"); |
538 | return -EINVAL; | 538 | return -EINVAL; |
539 | } | 539 | } |
@@ -571,7 +571,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap) | |||
571 | bitmap->flags |= BITMAP_HOSTENDIAN; | 571 | bitmap->flags |= BITMAP_HOSTENDIAN; |
572 | sb->version = cpu_to_le32(BITMAP_MAJOR_HOSTENDIAN); | 572 | sb->version = cpu_to_le32(BITMAP_MAJOR_HOSTENDIAN); |
573 | 573 | ||
574 | kunmap_atomic(sb, KM_USER0); | 574 | kunmap_atomic(sb); |
575 | 575 | ||
576 | return 0; | 576 | return 0; |
577 | } | 577 | } |
@@ -603,7 +603,7 @@ static int bitmap_read_sb(struct bitmap *bitmap) | |||
603 | return err; | 603 | return err; |
604 | } | 604 | } |
605 | 605 | ||
606 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 606 | sb = kmap_atomic(bitmap->sb_page); |
607 | 607 | ||
608 | chunksize = le32_to_cpu(sb->chunksize); | 608 | chunksize = le32_to_cpu(sb->chunksize); |
609 | daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ; | 609 | daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ; |
@@ -664,7 +664,7 @@ success: | |||
664 | bitmap->events_cleared = bitmap->mddev->events; | 664 | bitmap->events_cleared = bitmap->mddev->events; |
665 | err = 0; | 665 | err = 0; |
666 | out: | 666 | out: |
667 | kunmap_atomic(sb, KM_USER0); | 667 | kunmap_atomic(sb); |
668 | if (err) | 668 | if (err) |
669 | bitmap_print_sb(bitmap); | 669 | bitmap_print_sb(bitmap); |
670 | return err; | 670 | return err; |
@@ -689,7 +689,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits, | |||
689 | return 0; | 689 | return 0; |
690 | } | 690 | } |
691 | spin_unlock_irqrestore(&bitmap->lock, flags); | 691 | spin_unlock_irqrestore(&bitmap->lock, flags); |
692 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 692 | sb = kmap_atomic(bitmap->sb_page); |
693 | old = le32_to_cpu(sb->state) & bits; | 693 | old = le32_to_cpu(sb->state) & bits; |
694 | switch (op) { | 694 | switch (op) { |
695 | case MASK_SET: | 695 | case MASK_SET: |
@@ -703,7 +703,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits, | |||
703 | default: | 703 | default: |
704 | BUG(); | 704 | BUG(); |
705 | } | 705 | } |
706 | kunmap_atomic(sb, KM_USER0); | 706 | kunmap_atomic(sb); |
707 | return old; | 707 | return old; |
708 | } | 708 | } |
709 | 709 | ||
@@ -881,12 +881,12 @@ static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block) | |||
881 | bit = file_page_offset(bitmap, chunk); | 881 | bit = file_page_offset(bitmap, chunk); |
882 | 882 | ||
883 | /* set the bit */ | 883 | /* set the bit */ |
884 | kaddr = kmap_atomic(page, KM_USER0); | 884 | kaddr = kmap_atomic(page); |
885 | if (bitmap->flags & BITMAP_HOSTENDIAN) | 885 | if (bitmap->flags & BITMAP_HOSTENDIAN) |
886 | set_bit(bit, kaddr); | 886 | set_bit(bit, kaddr); |
887 | else | 887 | else |
888 | __set_bit_le(bit, kaddr); | 888 | __set_bit_le(bit, kaddr); |
889 | kunmap_atomic(kaddr, KM_USER0); | 889 | kunmap_atomic(kaddr); |
890 | pr_debug("set file bit %lu page %lu\n", bit, page->index); | 890 | pr_debug("set file bit %lu page %lu\n", bit, page->index); |
891 | /* record page number so it gets flushed to disk when unplug occurs */ | 891 | /* record page number so it gets flushed to disk when unplug occurs */ |
892 | set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY); | 892 | set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY); |
@@ -1050,10 +1050,10 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start) | |||
1050 | * if bitmap is out of date, dirty the | 1050 | * if bitmap is out of date, dirty the |
1051 | * whole page and write it out | 1051 | * whole page and write it out |
1052 | */ | 1052 | */ |
1053 | paddr = kmap_atomic(page, KM_USER0); | 1053 | paddr = kmap_atomic(page); |
1054 | memset(paddr + offset, 0xff, | 1054 | memset(paddr + offset, 0xff, |
1055 | PAGE_SIZE - offset); | 1055 | PAGE_SIZE - offset); |
1056 | kunmap_atomic(paddr, KM_USER0); | 1056 | kunmap_atomic(paddr); |
1057 | write_page(bitmap, page, 1); | 1057 | write_page(bitmap, page, 1); |
1058 | 1058 | ||
1059 | ret = -EIO; | 1059 | ret = -EIO; |
@@ -1061,12 +1061,12 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start) | |||
1061 | goto err; | 1061 | goto err; |
1062 | } | 1062 | } |
1063 | } | 1063 | } |
1064 | paddr = kmap_atomic(page, KM_USER0); | 1064 | paddr = kmap_atomic(page); |
1065 | if (bitmap->flags & BITMAP_HOSTENDIAN) | 1065 | if (bitmap->flags & BITMAP_HOSTENDIAN) |
1066 | b = test_bit(bit, paddr); | 1066 | b = test_bit(bit, paddr); |
1067 | else | 1067 | else |
1068 | b = test_bit_le(bit, paddr); | 1068 | b = test_bit_le(bit, paddr); |
1069 | kunmap_atomic(paddr, KM_USER0); | 1069 | kunmap_atomic(paddr); |
1070 | if (b) { | 1070 | if (b) { |
1071 | /* if the disk bit is set, set the memory bit */ | 1071 | /* if the disk bit is set, set the memory bit */ |
1072 | int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap)) | 1072 | int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap)) |
@@ -1209,10 +1209,10 @@ void bitmap_daemon_work(struct mddev *mddev) | |||
1209 | mddev->bitmap_info.external == 0) { | 1209 | mddev->bitmap_info.external == 0) { |
1210 | bitmap_super_t *sb; | 1210 | bitmap_super_t *sb; |
1211 | bitmap->need_sync = 0; | 1211 | bitmap->need_sync = 0; |
1212 | sb = kmap_atomic(bitmap->sb_page, KM_USER0); | 1212 | sb = kmap_atomic(bitmap->sb_page); |
1213 | sb->events_cleared = | 1213 | sb->events_cleared = |
1214 | cpu_to_le64(bitmap->events_cleared); | 1214 | cpu_to_le64(bitmap->events_cleared); |
1215 | kunmap_atomic(sb, KM_USER0); | 1215 | kunmap_atomic(sb); |
1216 | write_page(bitmap, bitmap->sb_page, 1); | 1216 | write_page(bitmap, bitmap->sb_page, 1); |
1217 | } | 1217 | } |
1218 | spin_lock_irqsave(&bitmap->lock, flags); | 1218 | spin_lock_irqsave(&bitmap->lock, flags); |
@@ -1235,7 +1235,7 @@ void bitmap_daemon_work(struct mddev *mddev) | |||
1235 | -1); | 1235 | -1); |
1236 | 1236 | ||
1237 | /* clear the bit */ | 1237 | /* clear the bit */ |
1238 | paddr = kmap_atomic(page, KM_USER0); | 1238 | paddr = kmap_atomic(page); |
1239 | if (bitmap->flags & BITMAP_HOSTENDIAN) | 1239 | if (bitmap->flags & BITMAP_HOSTENDIAN) |
1240 | clear_bit(file_page_offset(bitmap, j), | 1240 | clear_bit(file_page_offset(bitmap, j), |
1241 | paddr); | 1241 | paddr); |
@@ -1244,7 +1244,7 @@ void bitmap_daemon_work(struct mddev *mddev) | |||
1244 | file_page_offset(bitmap, | 1244 | file_page_offset(bitmap, |
1245 | j), | 1245 | j), |
1246 | paddr); | 1246 | paddr); |
1247 | kunmap_atomic(paddr, KM_USER0); | 1247 | kunmap_atomic(paddr); |
1248 | } else if (*bmc <= 2) { | 1248 | } else if (*bmc <= 2) { |
1249 | *bmc = 1; /* maybe clear the bit next time */ | 1249 | *bmc = 1; /* maybe clear the bit next time */ |
1250 | set_page_attr(bitmap, page, BITMAP_PAGE_PENDING); | 1250 | set_page_attr(bitmap, page, BITMAP_PAGE_PENDING); |