Lines Matching refs:mirror

61 	struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
64 hdr->req = nfs_list_entry(mirror->pg_list.next);
68 hdr->good_bytes = mirror->pg_count;
638 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
641 if (mirror->pg_count > mirror->pg_bsize) {
651 if (((mirror->pg_count + req->wb_bytes) >> PAGE_SHIFT) *
655 return min(mirror->pg_bsize - mirror->pg_count, (size_t)req->wb_bytes);
813 static void nfs_pageio_mirror_init(struct nfs_pgio_mirror *mirror,
816 INIT_LIST_HEAD(&mirror->pg_list);
817 mirror->pg_bytes_written = 0;
818 mirror->pg_count = 0;
819 mirror->pg_bsize = bsize;
820 mirror->pg_base = 0;
821 mirror->pg_recoalesce = 0;
895 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
900 struct list_head *head = &mirror->pg_list;
906 pagecount = nfs_page_array_len(mirror->pg_base, mirror->pg_count);
947 nfs_pgio_rpcsetup(hdr, mirror->pg_count, desc->pg_ioflags, &cinfo);
1093 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1097 if (list_empty(&mirror->pg_list)) {
1102 mirror->pg_base = req->wb_pgbase;
1103 mirror->pg_count = 0;
1104 mirror->pg_recoalesce = 0;
1106 prev = nfs_list_entry(mirror->pg_list.prev);
1119 nfs_list_move_request(req, &mirror->pg_list);
1120 mirror->pg_count += req->wb_bytes;
1129 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1131 if (!list_empty(&mirror->pg_list)) {
1135 if (list_empty(&mirror->pg_list)) {
1136 mirror->pg_bytes_written += mirror->pg_count;
1137 mirror->pg_count = 0;
1138 mirror->pg_base = 0;
1139 mirror->pg_recoalesce = 0;
1169 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1202 if (desc->pg_error < 0 || mirror->pg_recoalesce)
1225 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1229 list_splice_init(&mirror->pg_list, &head);
1230 mirror->pg_count = 0;
1231 mirror->pg_base = 0;
1232 mirror->pg_recoalesce = 0;
1241 list_splice_tail(&head, &mirror->pg_list);
1242 mirror->pg_recoalesce = 1;
1247 } while (mirror->pg_recoalesce);
1271 struct nfs_pgio_mirror *mirror;
1277 mirror = nfs_pgio_get_mirror(desc, midx);
1278 desc->pg_completion_ops->error_cleanup(&mirror->pg_list,
1298 /* Create the mirror instances first, and fire them off */
1330 * nfs_pageio_complete_mirror - Complete I/O on the current mirror of an
1333 * @mirror_idx: pointer to mirror index
1338 struct nfs_pgio_mirror *mirror;
1342 mirror = nfs_pgio_current_mirror(desc);
1346 if (desc->pg_error < 0 || !mirror->pg_recoalesce)
1420 struct nfs_pgio_mirror *mirror;
1425 mirror = nfs_pgio_get_mirror(desc, midx);
1426 if (!list_empty(&mirror->pg_list)) {
1427 prev = nfs_list_entry(mirror->pg_list.prev);
1437 * nfs_pageio_stop_mirroring - stop using mirroring (set mirror count to 1)