Lines Matching full:mirror
99 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
102 hdr->req = nfs_list_entry(mirror->pg_list.next);
106 hdr->good_bytes = mirror->pg_count;
613 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
616 if (mirror->pg_count > mirror->pg_bsize) {
626 if (((mirror->pg_count + req->wb_bytes) >> PAGE_SHIFT) *
630 return min(mirror->pg_bsize - mirror->pg_count, (size_t)req->wb_bytes);
797 static void nfs_pageio_mirror_init(struct nfs_pgio_mirror *mirror,
800 INIT_LIST_HEAD(&mirror->pg_list);
801 mirror->pg_bytes_written = 0;
802 mirror->pg_count = 0;
803 mirror->pg_bsize = bsize;
804 mirror->pg_base = 0;
805 mirror->pg_recoalesce = 0;
877 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
882 struct list_head *head = &mirror->pg_list;
886 unsigned int pg_base = offset_in_page(mirror->pg_base);
889 pagecount = nfs_page_array_len(pg_base, mirror->pg_count);
940 nfs_pgio_rpcsetup(hdr, pg_base, mirror->pg_count, desc->pg_ioflags,
1109 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1113 if (list_empty(&mirror->pg_list)) {
1118 mirror->pg_base = req->wb_pgbase;
1119 mirror->pg_count = 0;
1120 mirror->pg_recoalesce = 0;
1122 prev = nfs_list_entry(mirror->pg_list.prev);
1135 nfs_list_move_request(req, &mirror->pg_list);
1136 mirror->pg_count += req->wb_bytes;
1145 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1147 if (!list_empty(&mirror->pg_list)) {
1151 if (list_empty(&mirror->pg_list))
1152 mirror->pg_bytes_written += mirror->pg_count;
1181 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1214 if (desc->pg_error < 0 || mirror->pg_recoalesce)
1237 struct nfs_pgio_mirror *mirror = nfs_pgio_current_mirror(desc);
1241 list_splice_init(&mirror->pg_list, &head);
1242 mirror->pg_recoalesce = 0;
1251 list_splice_tail(&head, &mirror->pg_list);
1252 mirror->pg_recoalesce = 1;
1257 } while (mirror->pg_recoalesce);
1281 struct nfs_pgio_mirror *mirror;
1287 mirror = nfs_pgio_get_mirror(desc, midx);
1288 desc->pg_completion_ops->error_cleanup(&mirror->pg_list,
1308 /* Create the mirror instances first, and fire them off */
1340 * nfs_pageio_complete_mirror - Complete I/O on the current mirror of an
1343 * @mirror_idx: pointer to mirror index
1348 struct nfs_pgio_mirror *mirror;
1352 mirror = nfs_pgio_current_mirror(desc);
1356 if (desc->pg_error < 0 || !mirror->pg_recoalesce)
1431 struct nfs_pgio_mirror *mirror;
1437 mirror = nfs_pgio_get_mirror(desc, midx);
1438 if (!list_empty(&mirror->pg_list)) {
1439 prev = nfs_list_entry(mirror->pg_list.prev);
1458 * nfs_pageio_stop_mirroring - stop using mirroring (set mirror count to 1)