Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

md: raid1-10: move raid1/raid10 common code into raid1-10.c

No function change, just move 'struct resync_pages' and related
helpers into raid1-10.c

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Shaohua Li <shli@fb.com>

authored by

Ming Lei and committed by
Shaohua Li
be453e77 fb0eb5df

+62 -71
-53
drivers/md/md.h
··· 731 731 !bdev_get_queue(bio->bi_bdev)->limits.max_write_zeroes_sectors) 732 732 mddev->queue->limits.max_write_zeroes_sectors = 0; 733 733 } 734 - 735 - /* Maximum size of each resync request */ 736 - #define RESYNC_BLOCK_SIZE (64*1024) 737 - #define RESYNC_PAGES ((RESYNC_BLOCK_SIZE + PAGE_SIZE-1) / PAGE_SIZE) 738 - 739 - /* for managing resync I/O pages */ 740 - struct resync_pages { 741 - void *raid_bio; 742 - struct page *pages[RESYNC_PAGES]; 743 - }; 744 - 745 - static inline int resync_alloc_pages(struct resync_pages *rp, 746 - gfp_t gfp_flags) 747 - { 748 - int i; 749 - 750 - for (i = 0; i < RESYNC_PAGES; i++) { 751 - rp->pages[i] = alloc_page(gfp_flags); 752 - if (!rp->pages[i]) 753 - goto out_free; 754 - } 755 - 756 - return 0; 757 - 758 - out_free: 759 - while (--i >= 0) 760 - put_page(rp->pages[i]); 761 - return -ENOMEM; 762 - } 763 - 764 - static inline void resync_free_pages(struct resync_pages *rp) 765 - { 766 - int i; 767 - 768 - for (i = 0; i < RESYNC_PAGES; i++) 769 - put_page(rp->pages[i]); 770 - } 771 - 772 - static inline void resync_get_all_pages(struct resync_pages *rp) 773 - { 774 - int i; 775 - 776 - for (i = 0; i < RESYNC_PAGES; i++) 777 - get_page(rp->pages[i]); 778 - } 779 - 780 - static inline struct page *resync_fetch_page(struct resync_pages *rp, 781 - unsigned idx) 782 - { 783 - if (WARN_ON_ONCE(idx >= RESYNC_PAGES)) 784 - return NULL; 785 - return rp->pages[idx]; 786 - } 787 734 #endif /* _MD_MD_H */
+62
drivers/md/raid1-10.c
··· 1 + /* Maximum size of each resync request */ 2 + #define RESYNC_BLOCK_SIZE (64*1024) 3 + #define RESYNC_PAGES ((RESYNC_BLOCK_SIZE + PAGE_SIZE-1) / PAGE_SIZE) 4 + 5 + /* for managing resync I/O pages */ 6 + struct resync_pages { 7 + void *raid_bio; 8 + struct page *pages[RESYNC_PAGES]; 9 + }; 10 + 11 + static inline int resync_alloc_pages(struct resync_pages *rp, 12 + gfp_t gfp_flags) 13 + { 14 + int i; 15 + 16 + for (i = 0; i < RESYNC_PAGES; i++) { 17 + rp->pages[i] = alloc_page(gfp_flags); 18 + if (!rp->pages[i]) 19 + goto out_free; 20 + } 21 + 22 + return 0; 23 + 24 + out_free: 25 + while (--i >= 0) 26 + put_page(rp->pages[i]); 27 + return -ENOMEM; 28 + } 29 + 30 + static inline void resync_free_pages(struct resync_pages *rp) 31 + { 32 + int i; 33 + 34 + for (i = 0; i < RESYNC_PAGES; i++) 35 + put_page(rp->pages[i]); 36 + } 37 + 38 + static inline void resync_get_all_pages(struct resync_pages *rp) 39 + { 40 + int i; 41 + 42 + for (i = 0; i < RESYNC_PAGES; i++) 43 + get_page(rp->pages[i]); 44 + } 45 + 46 + static inline struct page *resync_fetch_page(struct resync_pages *rp, 47 + unsigned idx) 48 + { 49 + if (WARN_ON_ONCE(idx >= RESYNC_PAGES)) 50 + return NULL; 51 + return rp->pages[idx]; 52 + } 53 + 54 + /* 55 + * 'strct resync_pages' stores actual pages used for doing the resync 56 + * IO, and it is per-bio, so make .bi_private points to it. 57 + */ 58 + static inline struct resync_pages *get_resync_pages(struct bio *bio) 59 + { 60 + return bio->bi_private; 61 + } 62 + 1 63 /* generally called after bio_reset() for reseting bvec */ 2 64 static void md_bio_reset_resync_pages(struct bio *bio, struct resync_pages *rp, 3 65 int size)
-9
drivers/md/raid1.c
··· 84 84 #include "raid1-10.c" 85 85 86 86 /* 87 - * 'strct resync_pages' stores actual pages used for doing the resync 88 - * IO, and it is per-bio, so make .bi_private points to it. 89 - */ 90 - static inline struct resync_pages *get_resync_pages(struct bio *bio) 91 - { 92 - return bio->bi_private; 93 - } 94 - 95 - /* 96 87 * for resync bio, r1bio pointer can be retrieved from the per-bio 97 88 * 'struct resync_pages'. 98 89 */
-9
drivers/md/raid10.c
··· 113 113 #include "raid1-10.c" 114 114 115 115 /* 116 - * 'strct resync_pages' stores actual pages used for doing the resync 117 - * IO, and it is per-bio, so make .bi_private points to it. 118 - */ 119 - static inline struct resync_pages *get_resync_pages(struct bio *bio) 120 - { 121 - return bio->bi_private; 122 - } 123 - 124 - /* 125 116 * for resync bio, r10bio pointer can be retrieved from the per-bio 126 117 * 'struct resync_pages'. 127 118 */