Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
9f2c9d12
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9f2c9d12
编写于
10月 11, 2011
作者:
N
NeilBrown
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
md: remove typedefs: r10bio_t -> struct r10bio and r1bio_t -> struct r1bio
Signed-off-by:
N
NeilBrown
<
neilb@suse.de
>
上级
2b8bf345
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
71 addition
and
76 deletion
+71
-76
drivers/md/raid1.c
drivers/md/raid1.c
+30
-30
drivers/md/raid1.h
drivers/md/raid1.h
+6
-9
drivers/md/raid10.c
drivers/md/raid10.c
+34
-34
drivers/md/raid10.h
drivers/md/raid10.h
+1
-3
未找到文件。
drivers/md/raid1.c
浏览文件 @
9f2c9d12
...
...
@@ -52,7 +52,7 @@ static void lower_barrier(conf_t *conf);
static
void
*
r1bio_pool_alloc
(
gfp_t
gfp_flags
,
void
*
data
)
{
struct
pool_info
*
pi
=
data
;
int
size
=
offsetof
(
r1bio_t
,
bios
[
pi
->
raid_disks
]);
int
size
=
offsetof
(
struct
r1bio
,
bios
[
pi
->
raid_disks
]);
/* allocate a r1bio with room for raid_disks entries in the bios array */
return
kzalloc
(
size
,
gfp_flags
);
...
...
@@ -73,7 +73,7 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
{
struct
pool_info
*
pi
=
data
;
struct
page
*
page
;
r1bio_t
*
r1_bio
;
struct
r1bio
*
r1_bio
;
struct
bio
*
bio
;
int
i
,
j
;
...
...
@@ -139,7 +139,7 @@ static void r1buf_pool_free(void *__r1_bio, void *data)
{
struct
pool_info
*
pi
=
data
;
int
i
,
j
;
r1bio_t
*
r1bio
=
__r1_bio
;
struct
r1bio
*
r1bio
=
__r1_bio
;
for
(
i
=
0
;
i
<
RESYNC_PAGES
;
i
++
)
for
(
j
=
pi
->
raid_disks
;
j
--
;)
{
...
...
@@ -154,7 +154,7 @@ static void r1buf_pool_free(void *__r1_bio, void *data)
r1bio_pool_free
(
r1bio
,
data
);
}
static
void
put_all_bios
(
conf_t
*
conf
,
r1bio_t
*
r1_bio
)
static
void
put_all_bios
(
conf_t
*
conf
,
struct
r1bio
*
r1_bio
)
{
int
i
;
...
...
@@ -166,7 +166,7 @@ static void put_all_bios(conf_t *conf, r1bio_t *r1_bio)
}
}
static
void
free_r1bio
(
r1bio_t
*
r1_bio
)
static
void
free_r1bio
(
struct
r1bio
*
r1_bio
)
{
conf_t
*
conf
=
r1_bio
->
mddev
->
private
;
...
...
@@ -174,7 +174,7 @@ static void free_r1bio(r1bio_t *r1_bio)
mempool_free
(
r1_bio
,
conf
->
r1bio_pool
);
}
static
void
put_buf
(
r1bio_t
*
r1_bio
)
static
void
put_buf
(
struct
r1bio
*
r1_bio
)
{
conf_t
*
conf
=
r1_bio
->
mddev
->
private
;
int
i
;
...
...
@@ -190,7 +190,7 @@ static void put_buf(r1bio_t *r1_bio)
lower_barrier
(
conf
);
}
static
void
reschedule_retry
(
r1bio_t
*
r1_bio
)
static
void
reschedule_retry
(
struct
r1bio
*
r1_bio
)
{
unsigned
long
flags
;
struct
mddev
*
mddev
=
r1_bio
->
mddev
;
...
...
@@ -210,7 +210,7 @@ static void reschedule_retry(r1bio_t *r1_bio)
* operation and are ready to return a success/failure code to the buffer
* cache layer.
*/
static
void
call_bio_endio
(
r1bio_t
*
r1_bio
)
static
void
call_bio_endio
(
struct
r1bio
*
r1_bio
)
{
struct
bio
*
bio
=
r1_bio
->
master_bio
;
int
done
;
...
...
@@ -237,7 +237,7 @@ static void call_bio_endio(r1bio_t *r1_bio)
}
}
static
void
raid_end_bio_io
(
r1bio_t
*
r1_bio
)
static
void
raid_end_bio_io
(
struct
r1bio
*
r1_bio
)
{
struct
bio
*
bio
=
r1_bio
->
master_bio
;
...
...
@@ -257,7 +257,7 @@ static void raid_end_bio_io(r1bio_t *r1_bio)
/*
* Update disk head position estimator based on IRQ completion info.
*/
static
inline
void
update_head_pos
(
int
disk
,
r1bio_t
*
r1_bio
)
static
inline
void
update_head_pos
(
int
disk
,
struct
r1bio
*
r1_bio
)
{
conf_t
*
conf
=
r1_bio
->
mddev
->
private
;
...
...
@@ -268,7 +268,7 @@ static inline void update_head_pos(int disk, r1bio_t *r1_bio)
/*
* Find the disk number which triggered given bio
*/
static
int
find_bio_disk
(
r1bio_t
*
r1_bio
,
struct
bio
*
bio
)
static
int
find_bio_disk
(
struct
r1bio
*
r1_bio
,
struct
bio
*
bio
)
{
int
mirror
;
int
raid_disks
=
r1_bio
->
mddev
->
raid_disks
;
...
...
@@ -286,7 +286,7 @@ static int find_bio_disk(r1bio_t *r1_bio, struct bio *bio)
static
void
raid1_end_read_request
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r1bio_t
*
r1_bio
=
bio
->
bi_private
;
struct
r1bio
*
r1_bio
=
bio
->
bi_private
;
int
mirror
;
conf_t
*
conf
=
r1_bio
->
mddev
->
private
;
...
...
@@ -333,7 +333,7 @@ static void raid1_end_read_request(struct bio *bio, int error)
rdev_dec_pending
(
conf
->
mirrors
[
mirror
].
rdev
,
conf
->
mddev
);
}
static
void
close_write
(
r1bio_t
*
r1_bio
)
static
void
close_write
(
struct
r1bio
*
r1_bio
)
{
/* it really is the end of this request */
if
(
test_bit
(
R1BIO_BehindIO
,
&
r1_bio
->
state
))
{
...
...
@@ -352,7 +352,7 @@ static void close_write(r1bio_t *r1_bio)
md_write_end
(
r1_bio
->
mddev
);
}
static
void
r1_bio_write_done
(
r1bio_t
*
r1_bio
)
static
void
r1_bio_write_done
(
struct
r1bio
*
r1_bio
)
{
if
(
!
atomic_dec_and_test
(
&
r1_bio
->
remaining
))
return
;
...
...
@@ -371,7 +371,7 @@ static void r1_bio_write_done(r1bio_t *r1_bio)
static
void
raid1_end_write_request
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r1bio_t
*
r1_bio
=
bio
->
bi_private
;
struct
r1bio
*
r1_bio
=
bio
->
bi_private
;
int
mirror
,
behind
=
test_bit
(
R1BIO_BehindIO
,
&
r1_bio
->
state
);
conf_t
*
conf
=
r1_bio
->
mddev
->
private
;
struct
bio
*
to_put
=
NULL
;
...
...
@@ -466,7 +466,7 @@ static void raid1_end_write_request(struct bio *bio, int error)
*
* The rdev for the device selected will have nr_pending incremented.
*/
static
int
read_balance
(
conf_t
*
conf
,
r1bio_t
*
r1_bio
,
int
*
max_sectors
)
static
int
read_balance
(
conf_t
*
conf
,
struct
r1bio
*
r1_bio
,
int
*
max_sectors
)
{
const
sector_t
this_sector
=
r1_bio
->
sector
;
int
sectors
;
...
...
@@ -764,7 +764,7 @@ static void unfreeze_array(conf_t *conf)
/* duplicate the data pages for behind I/O
*/
static
void
alloc_behind_pages
(
struct
bio
*
bio
,
r1bio_t
*
r1_bio
)
static
void
alloc_behind_pages
(
struct
bio
*
bio
,
struct
r1bio
*
r1_bio
)
{
int
i
;
struct
bio_vec
*
bvec
;
...
...
@@ -800,7 +800,7 @@ static int make_request(struct mddev *mddev, struct bio * bio)
{
conf_t
*
conf
=
mddev
->
private
;
mirror_info_t
*
mirror
;
r1bio_t
*
r1_bio
;
struct
r1bio
*
r1_bio
;
struct
bio
*
read_bio
;
int
i
,
disks
;
struct
bitmap
*
bitmap
;
...
...
@@ -1354,7 +1354,7 @@ static int raid1_remove_disk(struct mddev *mddev, int number)
static
void
end_sync_read
(
struct
bio
*
bio
,
int
error
)
{
r1bio_t
*
r1_bio
=
bio
->
bi_private
;
struct
r1bio
*
r1_bio
=
bio
->
bi_private
;
update_head_pos
(
r1_bio
->
read_disk
,
r1_bio
);
...
...
@@ -1373,7 +1373,7 @@ static void end_sync_read(struct bio *bio, int error)
static
void
end_sync_write
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r1bio_t
*
r1_bio
=
bio
->
bi_private
;
struct
r1bio
*
r1_bio
=
bio
->
bi_private
;
struct
mddev
*
mddev
=
r1_bio
->
mddev
;
conf_t
*
conf
=
mddev
->
private
;
int
mirror
=
0
;
...
...
@@ -1433,7 +1433,7 @@ static int r1_sync_page_io(struct md_rdev *rdev, sector_t sector,
return
0
;
}
static
int
fix_sync_read_error
(
r1bio_t
*
r1_bio
)
static
int
fix_sync_read_error
(
struct
r1bio
*
r1_bio
)
{
/* Try some synchronous reads of other devices to get
* good data, much like with normal read errors. Only
...
...
@@ -1553,7 +1553,7 @@ static int fix_sync_read_error(r1bio_t *r1_bio)
return
1
;
}
static
int
process_checks
(
r1bio_t
*
r1_bio
)
static
int
process_checks
(
struct
r1bio
*
r1_bio
)
{
/* We have read all readable devices. If we haven't
* got the block, then there is no hope left.
...
...
@@ -1635,7 +1635,7 @@ static int process_checks(r1bio_t *r1_bio)
return
0
;
}
static
void
sync_request_write
(
struct
mddev
*
mddev
,
r1bio_t
*
r1_bio
)
static
void
sync_request_write
(
struct
mddev
*
mddev
,
struct
r1bio
*
r1_bio
)
{
conf_t
*
conf
=
mddev
->
private
;
int
i
;
...
...
@@ -1790,7 +1790,7 @@ static int submit_bio_wait(int rw, struct bio *bio)
return
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
}
static
int
narrow_write_error
(
r1bio_t
*
r1_bio
,
int
i
)
static
int
narrow_write_error
(
struct
r1bio
*
r1_bio
,
int
i
)
{
struct
mddev
*
mddev
=
r1_bio
->
mddev
;
conf_t
*
conf
=
mddev
->
private
;
...
...
@@ -1866,7 +1866,7 @@ static int narrow_write_error(r1bio_t *r1_bio, int i)
return
ok
;
}
static
void
handle_sync_write_finished
(
conf_t
*
conf
,
r1bio_t
*
r1_bio
)
static
void
handle_sync_write_finished
(
conf_t
*
conf
,
struct
r1bio
*
r1_bio
)
{
int
m
;
int
s
=
r1_bio
->
sectors
;
...
...
@@ -1889,7 +1889,7 @@ static void handle_sync_write_finished(conf_t *conf, r1bio_t *r1_bio)
md_done_sync
(
conf
->
mddev
,
s
,
1
);
}
static
void
handle_write_finished
(
conf_t
*
conf
,
r1bio_t
*
r1_bio
)
static
void
handle_write_finished
(
conf_t
*
conf
,
struct
r1bio
*
r1_bio
)
{
int
m
;
for
(
m
=
0
;
m
<
conf
->
raid_disks
;
m
++
)
...
...
@@ -1918,7 +1918,7 @@ static void handle_write_finished(conf_t *conf, r1bio_t *r1_bio)
raid_end_bio_io
(
r1_bio
);
}
static
void
handle_read_error
(
conf_t
*
conf
,
r1bio_t
*
r1_bio
)
static
void
handle_read_error
(
conf_t
*
conf
,
struct
r1bio
*
r1_bio
)
{
int
disk
;
int
max_sectors
;
...
...
@@ -2010,7 +2010,7 @@ static void handle_read_error(conf_t *conf, r1bio_t *r1_bio)
static
void
raid1d
(
struct
mddev
*
mddev
)
{
r1bio_t
*
r1_bio
;
struct
r1bio
*
r1_bio
;
unsigned
long
flags
;
conf_t
*
conf
=
mddev
->
private
;
struct
list_head
*
head
=
&
conf
->
retry_list
;
...
...
@@ -2029,7 +2029,7 @@ static void raid1d(struct mddev *mddev)
spin_unlock_irqrestore
(
&
conf
->
device_lock
,
flags
);
break
;
}
r1_bio
=
list_entry
(
head
->
prev
,
r1bio_t
,
retry_list
);
r1_bio
=
list_entry
(
head
->
prev
,
struct
r1bio
,
retry_list
);
list_del
(
head
->
prev
);
conf
->
nr_queued
--
;
spin_unlock_irqrestore
(
&
conf
->
device_lock
,
flags
);
...
...
@@ -2088,7 +2088,7 @@ static int init_resync(conf_t *conf)
static
sector_t
sync_request
(
struct
mddev
*
mddev
,
sector_t
sector_nr
,
int
*
skipped
,
int
go_faster
)
{
conf_t
*
conf
=
mddev
->
private
;
r1bio_t
*
r1_bio
;
struct
r1bio
*
r1_bio
;
struct
bio
*
bio
;
sector_t
max_sector
,
nr_sectors
;
int
disk
=
-
1
;
...
...
drivers/md/raid1.h
浏览文件 @
9f2c9d12
...
...
@@ -21,9 +21,6 @@ struct pool_info {
int
raid_disks
;
};
typedef
struct
r1bio_s
r1bio_t
;
struct
r1_private_data_s
{
struct
mddev
*
mddev
;
mirror_info_t
*
mirrors
;
...
...
@@ -43,9 +40,9 @@ struct r1_private_data_s {
spinlock_t
device_lock
;
/* list of '
r1bio_t' that need to be processed by raid1d, whether
*
to retry a read, writeout a resync or recovery block, or
* anything else.
/* list of '
struct r1bio' that need to be processed by raid1d,
*
whether to retry a read, writeout a resync or recovery
*
block, or
anything else.
*/
struct
list_head
retry_list
;
...
...
@@ -80,8 +77,8 @@ struct r1_private_data_s {
* mempools - it changes when the array grows or shrinks
*/
struct
pool_info
*
poolinfo
;
mempool_t
*
r1bio_pool
;
mempool_t
*
r1buf_pool
;
mempool_t
*
r1bio_pool
;
mempool_t
*
r1buf_pool
;
/* temporary buffer to synchronous IO when attempting to repair
* a read error.
...
...
@@ -104,7 +101,7 @@ typedef struct r1_private_data_s conf_t;
* for this RAID1 operation, and about their status:
*/
struct
r1bio
_s
{
struct
r1bio
{
atomic_t
remaining
;
/* 'have we finished' count,
* used from IRQ handlers
*/
...
...
drivers/md/raid10.c
浏览文件 @
9f2c9d12
...
...
@@ -64,7 +64,7 @@ static void lower_barrier(conf_t *conf);
static
void
*
r10bio_pool_alloc
(
gfp_t
gfp_flags
,
void
*
data
)
{
conf_t
*
conf
=
data
;
int
size
=
offsetof
(
struct
r10bio
_s
,
devs
[
conf
->
copies
]);
int
size
=
offsetof
(
struct
r10bio
,
devs
[
conf
->
copies
]);
/* allocate a r10bio with room for raid_disks entries in the bios array */
return
kzalloc
(
size
,
gfp_flags
);
...
...
@@ -94,7 +94,7 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data)
{
conf_t
*
conf
=
data
;
struct
page
*
page
;
r10bio_t
*
r10_bio
;
struct
r10bio
*
r10_bio
;
struct
bio
*
bio
;
int
i
,
j
;
int
nalloc
;
...
...
@@ -159,7 +159,7 @@ static void r10buf_pool_free(void *__r10_bio, void *data)
{
int
i
;
conf_t
*
conf
=
data
;
r10bio_t
*
r10bio
=
__r10_bio
;
struct
r10bio
*
r10bio
=
__r10_bio
;
int
j
;
for
(
j
=
0
;
j
<
conf
->
copies
;
j
++
)
{
...
...
@@ -175,7 +175,7 @@ static void r10buf_pool_free(void *__r10_bio, void *data)
r10bio_pool_free
(
r10bio
,
conf
);
}
static
void
put_all_bios
(
conf_t
*
conf
,
r10bio_t
*
r10_bio
)
static
void
put_all_bios
(
conf_t
*
conf
,
struct
r10bio
*
r10_bio
)
{
int
i
;
...
...
@@ -187,7 +187,7 @@ static void put_all_bios(conf_t *conf, r10bio_t *r10_bio)
}
}
static
void
free_r10bio
(
r10bio_t
*
r10_bio
)
static
void
free_r10bio
(
struct
r10bio
*
r10_bio
)
{
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
...
...
@@ -195,7 +195,7 @@ static void free_r10bio(r10bio_t *r10_bio)
mempool_free
(
r10_bio
,
conf
->
r10bio_pool
);
}
static
void
put_buf
(
r10bio_t
*
r10_bio
)
static
void
put_buf
(
struct
r10bio
*
r10_bio
)
{
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
...
...
@@ -204,7 +204,7 @@ static void put_buf(r10bio_t *r10_bio)
lower_barrier
(
conf
);
}
static
void
reschedule_retry
(
r10bio_t
*
r10_bio
)
static
void
reschedule_retry
(
struct
r10bio
*
r10_bio
)
{
unsigned
long
flags
;
struct
mddev
*
mddev
=
r10_bio
->
mddev
;
...
...
@@ -226,7 +226,7 @@ static void reschedule_retry(r10bio_t *r10_bio)
* operation and are ready to return a success/failure code to the buffer
* cache layer.
*/
static
void
raid_end_bio_io
(
r10bio_t
*
r10_bio
)
static
void
raid_end_bio_io
(
struct
r10bio
*
r10_bio
)
{
struct
bio
*
bio
=
r10_bio
->
master_bio
;
int
done
;
...
...
@@ -256,7 +256,7 @@ static void raid_end_bio_io(r10bio_t *r10_bio)
/*
* Update disk head position estimator based on IRQ completion info.
*/
static
inline
void
update_head_pos
(
int
slot
,
r10bio_t
*
r10_bio
)
static
inline
void
update_head_pos
(
int
slot
,
struct
r10bio
*
r10_bio
)
{
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
...
...
@@ -267,7 +267,7 @@ static inline void update_head_pos(int slot, r10bio_t *r10_bio)
/*
* Find the disk number which triggered given bio
*/
static
int
find_bio_disk
(
conf_t
*
conf
,
r10bio_t
*
r10_bio
,
static
int
find_bio_disk
(
conf_t
*
conf
,
struct
r10bio
*
r10_bio
,
struct
bio
*
bio
,
int
*
slotp
)
{
int
slot
;
...
...
@@ -287,7 +287,7 @@ static int find_bio_disk(conf_t *conf, r10bio_t *r10_bio,
static
void
raid10_end_read_request
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r10bio_t
*
r10_bio
=
bio
->
bi_private
;
struct
r10bio
*
r10_bio
=
bio
->
bi_private
;
int
slot
,
dev
;
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
...
...
@@ -327,7 +327,7 @@ static void raid10_end_read_request(struct bio *bio, int error)
}
}
static
void
close_write
(
r10bio_t
*
r10_bio
)
static
void
close_write
(
struct
r10bio
*
r10_bio
)
{
/* clear the bitmap if all writes complete successfully */
bitmap_endwrite
(
r10_bio
->
mddev
->
bitmap
,
r10_bio
->
sector
,
...
...
@@ -337,7 +337,7 @@ static void close_write(r10bio_t *r10_bio)
md_write_end
(
r10_bio
->
mddev
);
}
static
void
one_write_done
(
r10bio_t
*
r10_bio
)
static
void
one_write_done
(
struct
r10bio
*
r10_bio
)
{
if
(
atomic_dec_and_test
(
&
r10_bio
->
remaining
))
{
if
(
test_bit
(
R10BIO_WriteError
,
&
r10_bio
->
state
))
...
...
@@ -355,7 +355,7 @@ static void one_write_done(r10bio_t *r10_bio)
static
void
raid10_end_write_request
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r10bio_t
*
r10_bio
=
bio
->
bi_private
;
struct
r10bio
*
r10_bio
=
bio
->
bi_private
;
int
dev
;
int
dec_rdev
=
1
;
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
...
...
@@ -433,7 +433,7 @@ static void raid10_end_write_request(struct bio *bio, int error)
* sector offset to a virtual address
*/
static
void
raid10_find_phys
(
conf_t
*
conf
,
r10bio_t
*
r10bio
)
static
void
raid10_find_phys
(
conf_t
*
conf
,
struct
r10bio
*
r10bio
)
{
int
n
,
f
;
sector_t
sector
;
...
...
@@ -555,7 +555,7 @@ static int raid10_mergeable_bvec(struct request_queue *q,
* FIXME: possibly should rethink readbalancing and do it differently
* depending on near_copies / far_copies geometry.
*/
static
int
read_balance
(
conf_t
*
conf
,
r10bio_t
*
r10_bio
,
int
*
max_sectors
)
static
int
read_balance
(
conf_t
*
conf
,
struct
r10bio
*
r10_bio
,
int
*
max_sectors
)
{
const
sector_t
this_sector
=
r10_bio
->
sector
;
int
disk
,
slot
;
...
...
@@ -834,7 +834,7 @@ static int make_request(struct mddev *mddev, struct bio * bio)
{
conf_t
*
conf
=
mddev
->
private
;
mirror_info_t
*
mirror
;
r10bio_t
*
r10_bio
;
struct
r10bio
*
r10_bio
;
struct
bio
*
read_bio
;
int
i
;
int
chunk_sects
=
conf
->
chunk_mask
+
1
;
...
...
@@ -1411,7 +1411,7 @@ static int raid10_remove_disk(struct mddev *mddev, int number)
static
void
end_sync_read
(
struct
bio
*
bio
,
int
error
)
{
r10bio_t
*
r10_bio
=
bio
->
bi_private
;
struct
r10bio
*
r10_bio
=
bio
->
bi_private
;
conf_t
*
conf
=
r10_bio
->
mddev
->
private
;
int
d
;
...
...
@@ -1439,7 +1439,7 @@ static void end_sync_read(struct bio *bio, int error)
}
}
static
void
end_sync_request
(
r10bio_t
*
r10_bio
)
static
void
end_sync_request
(
struct
r10bio
*
r10_bio
)
{
struct
mddev
*
mddev
=
r10_bio
->
mddev
;
...
...
@@ -1455,7 +1455,7 @@ static void end_sync_request(r10bio_t *r10_bio)
md_done_sync
(
mddev
,
s
,
1
);
break
;
}
else
{
r10bio_t
*
r10_bio2
=
(
r10bio_t
*
)
r10_bio
->
master_bio
;
struct
r10bio
*
r10_bio2
=
(
struct
r10bio
*
)
r10_bio
->
master_bio
;
if
(
test_bit
(
R10BIO_MadeGood
,
&
r10_bio
->
state
)
||
test_bit
(
R10BIO_WriteError
,
&
r10_bio
->
state
))
reschedule_retry
(
r10_bio
);
...
...
@@ -1469,7 +1469,7 @@ static void end_sync_request(r10bio_t *r10_bio)
static
void
end_sync_write
(
struct
bio
*
bio
,
int
error
)
{
int
uptodate
=
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
r10bio_t
*
r10_bio
=
bio
->
bi_private
;
struct
r10bio
*
r10_bio
=
bio
->
bi_private
;
struct
mddev
*
mddev
=
r10_bio
->
mddev
;
conf_t
*
conf
=
mddev
->
private
;
int
d
;
...
...
@@ -1509,7 +1509,7 @@ static void end_sync_write(struct bio *bio, int error)
* We check if all blocks are in-sync and only write to blocks that
* aren't in sync
*/
static
void
sync_request_write
(
struct
mddev
*
mddev
,
r10bio_t
*
r10_bio
)
static
void
sync_request_write
(
struct
mddev
*
mddev
,
struct
r10bio
*
r10_bio
)
{
conf_t
*
conf
=
mddev
->
private
;
int
i
,
first
;
...
...
@@ -1609,7 +1609,7 @@ static void sync_request_write(struct mddev *mddev, r10bio_t *r10_bio)
* The second for writing.
*
*/
static
void
fix_recovery_read_error
(
r10bio_t
*
r10_bio
)
static
void
fix_recovery_read_error
(
struct
r10bio
*
r10_bio
)
{
/* We got a read error during recovery.
* We repeat the read in smaller page-sized sections.
...
...
@@ -1688,7 +1688,7 @@ static void fix_recovery_read_error(r10bio_t *r10_bio)
}
}
static
void
recovery_request_write
(
struct
mddev
*
mddev
,
r10bio_t
*
r10_bio
)
static
void
recovery_request_write
(
struct
mddev
*
mddev
,
struct
r10bio
*
r10_bio
)
{
conf_t
*
conf
=
mddev
->
private
;
int
d
;
...
...
@@ -1778,7 +1778,7 @@ static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
* 3. Performs writes following reads for array synchronising.
*/
static
void
fix_read_error
(
conf_t
*
conf
,
struct
mddev
*
mddev
,
r10bio_t
*
r10_bio
)
static
void
fix_read_error
(
conf_t
*
conf
,
struct
mddev
*
mddev
,
struct
r10bio
*
r10_bio
)
{
int
sect
=
0
;
/* Offset from r10_bio->sector */
int
sectors
=
r10_bio
->
sectors
;
...
...
@@ -1983,7 +1983,7 @@ static int submit_bio_wait(int rw, struct bio *bio)
return
test_bit
(
BIO_UPTODATE
,
&
bio
->
bi_flags
);
}
static
int
narrow_write_error
(
r10bio_t
*
r10_bio
,
int
i
)
static
int
narrow_write_error
(
struct
r10bio
*
r10_bio
,
int
i
)
{
struct
bio
*
bio
=
r10_bio
->
master_bio
;
struct
mddev
*
mddev
=
r10_bio
->
mddev
;
...
...
@@ -2040,7 +2040,7 @@ static int narrow_write_error(r10bio_t *r10_bio, int i)
return
ok
;
}
static
void
handle_read_error
(
struct
mddev
*
mddev
,
r10bio_t
*
r10_bio
)
static
void
handle_read_error
(
struct
mddev
*
mddev
,
struct
r10bio
*
r10_bio
)
{
int
slot
=
r10_bio
->
read_slot
;
int
mirror
=
r10_bio
->
devs
[
slot
].
devnum
;
...
...
@@ -2139,7 +2139,7 @@ static void handle_read_error(struct mddev *mddev, r10bio_t *r10_bio)
generic_make_request
(
bio
);
}
static
void
handle_write_completed
(
conf_t
*
conf
,
r10bio_t
*
r10_bio
)
static
void
handle_write_completed
(
conf_t
*
conf
,
struct
r10bio
*
r10_bio
)
{
/* Some sort of write request has finished and it
* succeeded in writing where we thought there was a
...
...
@@ -2202,7 +2202,7 @@ static void handle_write_completed(conf_t *conf, r10bio_t *r10_bio)
static
void
raid10d
(
struct
mddev
*
mddev
)
{
r10bio_t
*
r10_bio
;
struct
r10bio
*
r10_bio
;
unsigned
long
flags
;
conf_t
*
conf
=
mddev
->
private
;
struct
list_head
*
head
=
&
conf
->
retry_list
;
...
...
@@ -2220,7 +2220,7 @@ static void raid10d(struct mddev *mddev)
spin_unlock_irqrestore
(
&
conf
->
device_lock
,
flags
);
break
;
}
r10_bio
=
list_entry
(
head
->
prev
,
r10bio_t
,
retry_list
);
r10_bio
=
list_entry
(
head
->
prev
,
struct
r10bio
,
retry_list
);
list_del
(
head
->
prev
);
conf
->
nr_queued
--
;
spin_unlock_irqrestore
(
&
conf
->
device_lock
,
flags
);
...
...
@@ -2301,7 +2301,7 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
int
*
skipped
,
int
go_faster
)
{
conf_t
*
conf
=
mddev
->
private
;
r10bio_t
*
r10_bio
;
struct
r10bio
*
r10_bio
;
struct
bio
*
biolist
=
NULL
,
*
bio
;
sector_t
max_sector
,
nr_sectors
;
int
i
;
...
...
@@ -2393,7 +2393,7 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
for
(
i
=
0
;
i
<
conf
->
raid_disks
;
i
++
)
{
int
still_degraded
;
r10bio_t
*
rb2
;
struct
r10bio
*
rb2
;
sector_t
sect
;
int
must_sync
;
int
any_working
;
...
...
@@ -2547,8 +2547,8 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
}
if
(
biolist
==
NULL
)
{
while
(
r10_bio
)
{
r10bio_t
*
rb2
=
r10_bio
;
r10_bio
=
(
r10bio_t
*
)
rb2
->
master_bio
;
struct
r10bio
*
rb2
=
r10_bio
;
r10_bio
=
(
struct
r10bio
*
)
rb2
->
master_bio
;
rb2
->
master_bio
=
NULL
;
put_buf
(
rb2
);
}
...
...
drivers/md/raid10.h
浏览文件 @
9f2c9d12
...
...
@@ -13,8 +13,6 @@ struct mirror_info {
*/
};
typedef
struct
r10bio_s
r10bio_t
;
struct
r10_private_data_s
{
struct
mddev
*
mddev
;
mirror_info_t
*
mirrors
;
...
...
@@ -80,7 +78,7 @@ typedef struct r10_private_data_s conf_t;
* for this RAID10 operation, and about their status:
*/
struct
r10bio
_s
{
struct
r10bio
{
atomic_t
remaining
;
/* 'have we finished' count,
* used from IRQ handlers
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录