Skip to content

Commit be453e7

Browse files
Ming Leishligit
authored andcommitted
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 <[email protected]> Signed-off-by: Shaohua Li <[email protected]>
1 parent fb0eb5d commit be453e7

File tree

4 files changed

+62
-71
lines changed

4 files changed

+62
-71
lines changed

drivers/md/md.h

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -731,57 +731,4 @@ static inline void mddev_check_write_zeroes(struct mddev *mddev, struct bio *bio
731731
!bdev_get_queue(bio->bi_bdev)->limits.max_write_zeroes_sectors)
732732
mddev->queue->limits.max_write_zeroes_sectors = 0;
733733
}
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-
}
787734
#endif /* _MD_MD_H */

drivers/md/raid1-10.c

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
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+
163
/* generally called after bio_reset() for reseting bvec */
264
static void md_bio_reset_resync_pages(struct bio *bio, struct resync_pages *rp,
365
int size)

drivers/md/raid1.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,6 @@ static void lower_barrier(struct r1conf *conf, sector_t sector_nr);
8383

8484
#include "raid1-10.c"
8585

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-
9586
/*
9687
* for resync bio, r1bio pointer can be retrieved from the per-bio
9788
* 'struct resync_pages'.

drivers/md/raid10.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,6 @@ static void end_reshape(struct r10conf *conf);
112112

113113
#include "raid1-10.c"
114114

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-
124115
/*
125116
* for resync bio, r10bio pointer can be retrieved from the per-bio
126117
* 'struct resync_pages'.

0 commit comments

Comments
 (0)