|
@@ -1021,8 +1021,6 @@ static int __nfs_pageio_add_request(struct nfs_pageio_descriptor *desc,
|
|
unsigned int bytes_left = 0;
|
|
unsigned int bytes_left = 0;
|
|
unsigned int offset, pgbase;
|
|
unsigned int offset, pgbase;
|
|
|
|
|
|
- WARN_ON_ONCE(desc->pg_mirror_idx >= desc->pg_mirror_count);
|
|
|
|
-
|
|
|
|
nfs_page_group_lock(req, false);
|
|
nfs_page_group_lock(req, false);
|
|
|
|
|
|
subreq = req;
|
|
subreq = req;
|
|
@@ -1162,7 +1160,8 @@ int nfs_pageio_add_request(struct nfs_pageio_descriptor *desc,
|
|
} else
|
|
} else
|
|
dupreq = req;
|
|
dupreq = req;
|
|
|
|
|
|
- desc->pg_mirror_idx = midx;
|
|
|
|
|
|
+ if (nfs_pgio_has_mirroring(desc))
|
|
|
|
+ desc->pg_mirror_idx = midx;
|
|
if (!nfs_pageio_add_request_mirror(desc, dupreq))
|
|
if (!nfs_pageio_add_request_mirror(desc, dupreq))
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -1181,7 +1180,8 @@ static void nfs_pageio_complete_mirror(struct nfs_pageio_descriptor *desc,
|
|
struct nfs_pgio_mirror *mirror = &desc->pg_mirrors[mirror_idx];
|
|
struct nfs_pgio_mirror *mirror = &desc->pg_mirrors[mirror_idx];
|
|
u32 restore_idx = desc->pg_mirror_idx;
|
|
u32 restore_idx = desc->pg_mirror_idx;
|
|
|
|
|
|
- desc->pg_mirror_idx = mirror_idx;
|
|
|
|
|
|
+ if (nfs_pgio_has_mirroring(desc))
|
|
|
|
+ desc->pg_mirror_idx = mirror_idx;
|
|
for (;;) {
|
|
for (;;) {
|
|
nfs_pageio_doio(desc);
|
|
nfs_pageio_doio(desc);
|
|
if (!mirror->pg_recoalesce)
|
|
if (!mirror->pg_recoalesce)
|