Lines Matching +full:num +full:- +full:addresses

51 	nfs4_print_deviceid(&dsaddr->id_node.deviceid);  in nfs4_fl_free_deviceid()
53 for (i = 0; i < dsaddr->ds_num; i++) { in nfs4_fl_free_deviceid()
54 ds = dsaddr->ds_list[i]; in nfs4_fl_free_deviceid()
58 kfree(dsaddr->stripe_indices); in nfs4_fl_free_deviceid()
68 u32 cnt, num; in nfs4_fl_alloc_deviceid_node() local
79 struct net *net = server->nfs_client->cl_net; in nfs4_fl_alloc_deviceid_node()
86 xdr_init_decode_pages(&stream, &buf, pdev->pages, pdev->pglen); in nfs4_fl_alloc_deviceid_node()
125 num = be32_to_cpup(p); in nfs4_fl_alloc_deviceid_node()
126 dprintk("%s ds_num %u\n", __func__, num); in nfs4_fl_alloc_deviceid_node()
127 if (num > NFS4_PNFS_MAX_MULTI_CNT) { in nfs4_fl_alloc_deviceid_node()
130 num, NFS4_PNFS_MAX_MULTI_CNT); in nfs4_fl_alloc_deviceid_node()
134 /* validate stripe indices are all < num */ in nfs4_fl_alloc_deviceid_node()
135 if (max_stripe_index >= num) { in nfs4_fl_alloc_deviceid_node()
136 printk(KERN_WARNING "NFS: %s: stripe index %u >= num ds %u\n", in nfs4_fl_alloc_deviceid_node()
137 __func__, max_stripe_index, num); in nfs4_fl_alloc_deviceid_node()
141 dsaddr = kzalloc(struct_size(dsaddr, ds_list, num), gfp_flags); in nfs4_fl_alloc_deviceid_node()
145 dsaddr->stripe_count = cnt; in nfs4_fl_alloc_deviceid_node()
146 dsaddr->stripe_indices = stripe_indices; in nfs4_fl_alloc_deviceid_node()
148 dsaddr->ds_num = num; in nfs4_fl_alloc_deviceid_node()
149 nfs4_init_deviceid_node(&dsaddr->id_node, server, &pdev->dev_id); in nfs4_fl_alloc_deviceid_node()
153 for (i = 0; i < dsaddr->ds_num; i++) { in nfs4_fl_alloc_deviceid_node()
165 list_add_tail(&da->da_node, &dsaddrs); in nfs4_fl_alloc_deviceid_node()
168 dprintk("%s: no suitable DS addresses found\n", in nfs4_fl_alloc_deviceid_node()
173 dsaddr->ds_list[i] = nfs4_pnfs_ds_add(net, &dsaddrs, gfp_flags); in nfs4_fl_alloc_deviceid_node()
174 if (!dsaddr->ds_list[i]) in nfs4_fl_alloc_deviceid_node()
176 trace_fl_getdevinfo(server, &pdev->dev_id, dsaddr->ds_list[i]->ds_remotestr); in nfs4_fl_alloc_deviceid_node()
183 list_del_init(&da->da_node); in nfs4_fl_alloc_deviceid_node()
184 kfree(da->da_remotestr); in nfs4_fl_alloc_deviceid_node()
196 list_del_init(&da->da_node); in nfs4_fl_alloc_deviceid_node()
197 kfree(da->da_remotestr); in nfs4_fl_alloc_deviceid_node()
216 nfs4_put_deviceid_node(&dsaddr->id_node); in nfs4_fl_put_deviceid()
220 * Want res = (offset - layout->pattern_offset)/ layout->stripe_unit
221 * Then: ((res + fsi) % dsaddr->stripe_count)
229 tmp = offset - flseg->pattern_offset; in nfs4_fl_calc_j_index()
230 do_div(tmp, flseg->stripe_unit); in nfs4_fl_calc_j_index()
231 tmp += flseg->first_stripe_index; in nfs4_fl_calc_j_index()
232 return do_div(tmp, flseg->dsaddr->stripe_count); in nfs4_fl_calc_j_index()
238 return FILELAYOUT_LSEG(lseg)->dsaddr->stripe_indices[j]; in nfs4_fl_calc_ds_index()
247 if (flseg->stripe_type == STRIPE_SPARSE) { in nfs4_fl_select_ds_fh()
248 if (flseg->num_fh == 1) in nfs4_fl_select_ds_fh()
250 else if (flseg->num_fh == 0) in nfs4_fl_select_ds_fh()
257 return flseg->fh_array[i]; in nfs4_fl_select_ds_fh()
264 struct nfs4_file_layout_dsaddr *dsaddr = FILELAYOUT_LSEG(lseg)->dsaddr; in nfs4_fl_prepare_ds()
265 struct nfs4_pnfs_ds *ds = dsaddr->ds_list[ds_idx]; in nfs4_fl_prepare_ds()
268 struct nfs_server *s = NFS_SERVER(lseg->pls_layout->plh_inode); in nfs4_fl_prepare_ds()
278 if (ds->ds_clp) in nfs4_fl_prepare_ds()
283 s->nfs_client->cl_minorversion); in nfs4_fl_prepare_ds()
291 if (ret->ds_clp == NULL || in nfs4_fl_prepare_ds()