Lines Matching full:ds
85 cinfo->ds->nwritten--; in pnfs_generic_clear_request_commit()
252 cinfo->ds->nwritten -= ret; in pnfs_bucket_scan_ds_commit_list()
253 cinfo->ds->ncommitting += ret; in pnfs_bucket_scan_ds_commit_list()
279 struct pnfs_ds_commit_info *fl_cinfo = cinfo->ds; in pnfs_generic_scan_commit_lists()
332 struct pnfs_ds_commit_info *fl_cinfo = cinfo->ds; in pnfs_generic_recover_commit_reqs()
387 struct pnfs_ds_commit_info *fl_cinfo = cinfo->ds; in pnfs_generic_search_commit_reqs()
410 cinfo->ds->ncommitting--; in pnfs_bucket_get_committing()
513 struct pnfs_ds_commit_info *fl_cinfo = cinfo->ds; in pnfs_generic_commit_pagelist()
563 print_ds(struct nfs4_pnfs_ds *ds) in print_ds() argument
565 if (ds == NULL) { in print_ds()
569 printk(KERN_WARNING " ds %s\n" in print_ds()
573 ds->ds_remotestr, in print_ds()
574 refcount_read(&ds->ds_count), ds->ds_clp, in print_ds()
575 ds->ds_clp ? ds->ds_clp->cl_exchange_flags : 0); in print_ds()
649 * Lookup DS by addresses. nfs4_ds_cache_lock is held
654 struct nfs4_pnfs_ds *ds; in _data_server_lookup_locked() local
656 list_for_each_entry(ds, &nfs4_data_server_cache, ds_node) in _data_server_lookup_locked()
657 if (_same_data_server_addrs_locked(&ds->ds_addrs, dsaddrs)) in _data_server_lookup_locked()
658 return ds; in _data_server_lookup_locked()
677 static void destroy_ds(struct nfs4_pnfs_ds *ds) in destroy_ds() argument
683 print_ds(ds); in destroy_ds()
685 nfs_put_client(ds->ds_clp); in destroy_ds()
687 while (!list_empty(&ds->ds_addrs)) { in destroy_ds()
688 da = list_first_entry(&ds->ds_addrs, in destroy_ds()
695 kfree(ds->ds_remotestr); in destroy_ds()
696 kfree(ds); in destroy_ds()
699 void nfs4_pnfs_ds_put(struct nfs4_pnfs_ds *ds) in nfs4_pnfs_ds_put() argument
701 if (refcount_dec_and_lock(&ds->ds_count, in nfs4_pnfs_ds_put()
703 list_del_init(&ds->ds_node); in nfs4_pnfs_ds_put()
705 destroy_ds(ds); in nfs4_pnfs_ds_put()
760 * Given a list of multipath struct nfs4_pnfs_ds_addr, add it to ds cache if
766 struct nfs4_pnfs_ds *tmp_ds, *ds = NULL; in nfs4_pnfs_ds_add() local
774 ds = kzalloc(sizeof(*ds), gfp_flags); in nfs4_pnfs_ds_add()
775 if (!ds) in nfs4_pnfs_ds_add()
784 INIT_LIST_HEAD(&ds->ds_addrs); in nfs4_pnfs_ds_add()
785 list_splice_init(dsaddrs, &ds->ds_addrs); in nfs4_pnfs_ds_add()
786 ds->ds_remotestr = remotestr; in nfs4_pnfs_ds_add()
787 refcount_set(&ds->ds_count, 1); in nfs4_pnfs_ds_add()
788 INIT_LIST_HEAD(&ds->ds_node); in nfs4_pnfs_ds_add()
789 ds->ds_clp = NULL; in nfs4_pnfs_ds_add()
790 list_add(&ds->ds_node, &nfs4_data_server_cache); in nfs4_pnfs_ds_add()
792 ds->ds_remotestr); in nfs4_pnfs_ds_add()
795 kfree(ds); in nfs4_pnfs_ds_add()
800 ds = tmp_ds; in nfs4_pnfs_ds_add()
804 return ds; in nfs4_pnfs_ds_add()
808 static int nfs4_wait_ds_connect(struct nfs4_pnfs_ds *ds) in nfs4_wait_ds_connect() argument
811 return wait_on_bit(&ds->ds_state, NFS4DS_CONNECTING, TASK_KILLABLE); in nfs4_wait_ds_connect()
814 static void nfs4_clear_ds_conn_bit(struct nfs4_pnfs_ds *ds) in nfs4_clear_ds_conn_bit() argument
817 clear_and_wake_up_bit(NFS4DS_CONNECTING, &ds->ds_state); in nfs4_clear_ds_conn_bit()
847 struct nfs4_pnfs_ds *ds, in _nfs4_pnfs_v3_ds_connect() argument
855 dprintk("--> %s DS %s\n", __func__, ds->ds_remotestr); in _nfs4_pnfs_v3_ds_connect()
860 list_for_each_entry(da, &ds->ds_addrs, da_node) { in _nfs4_pnfs_v3_ds_connect()
861 dprintk("%s: DS %s: trying address %s\n", in _nfs4_pnfs_v3_ds_connect()
862 __func__, ds->ds_remotestr, da->da_remotestr); in _nfs4_pnfs_v3_ds_connect()
898 ds->ds_clp = clp; in _nfs4_pnfs_v3_ds_connect()
899 dprintk("%s [new] addr: %s\n", __func__, ds->ds_remotestr); in _nfs4_pnfs_v3_ds_connect()
905 struct nfs4_pnfs_ds *ds, in _nfs4_pnfs_v4_ds_connect() argument
914 dprintk("--> %s DS %s\n", __func__, ds->ds_remotestr); in _nfs4_pnfs_v4_ds_connect()
916 list_for_each_entry(da, &ds->ds_addrs, da_node) { in _nfs4_pnfs_v4_ds_connect()
917 dprintk("%s: DS %s: trying address %s\n", in _nfs4_pnfs_v4_ds_connect()
918 __func__, ds->ds_remotestr, da->da_remotestr); in _nfs4_pnfs_v4_ds_connect()
976 ds->ds_clp = clp; in _nfs4_pnfs_v4_ds_connect()
977 dprintk("%s [new] addr: %s\n", __func__, ds->ds_remotestr); in _nfs4_pnfs_v4_ds_connect()
987 int nfs4_pnfs_ds_connect(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds, in nfs4_pnfs_ds_connect() argument
994 err = nfs4_wait_ds_connect(ds); in nfs4_pnfs_ds_connect()
995 if (err || ds->ds_clp) in nfs4_pnfs_ds_connect()
999 } while (test_and_set_bit(NFS4DS_CONNECTING, &ds->ds_state) != 0); in nfs4_pnfs_ds_connect()
1001 if (ds->ds_clp) in nfs4_pnfs_ds_connect()
1006 err = _nfs4_pnfs_v3_ds_connect(mds_srv, ds, timeo, retrans); in nfs4_pnfs_ds_connect()
1009 err = _nfs4_pnfs_v4_ds_connect(mds_srv, ds, timeo, retrans, in nfs4_pnfs_ds_connect()
1013 dprintk("%s: unsupported DS version %d\n", __func__, version); in nfs4_pnfs_ds_connect()
1018 nfs4_clear_ds_conn_bit(ds); in nfs4_pnfs_ds_connect()
1021 * At this point the ds->ds_clp should be ready, but it might have in nfs4_pnfs_ds_connect()
1025 if (!ds->ds_clp || !nfs_client_init_is_complete(ds->ds_clp)) { in nfs4_pnfs_ds_connect()
1026 WARN_ON_ONCE(ds->ds_clp || in nfs4_pnfs_ds_connect()
1030 err = nfs_client_init_status(ds->ds_clp); in nfs4_pnfs_ds_connect()
1136 dprintk("%s: Parsed DS addr %s\n", __func__, da->da_remotestr); in nfs4_decode_mp_ds_addr()
1143 dprintk("%s: Error parsing DS addr: %s\n", __func__, buf); in nfs4_decode_mp_ds_addr()
1163 array = pnfs_lookup_commit_array(cinfo->ds, lseg); in pnfs_layout_mark_request_commit()
1177 cinfo->ds->nwritten++; in pnfs_layout_mark_request_commit()