From: rread Date: Thu, 20 Feb 2003 20:42:34 +0000 (+0000) Subject: Landing b_malt onto b_devel X-Git-Tag: v1_7_100~1^94~93 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=f708d7a1d2750e1fea8e3de62f574d2c15c0ec05;p=fs%2Flustre-release.git Landing b_malt onto b_devel - move uuid and handles to lustre, with config changes - b=204,667: fix router config so network interfaces can be created in any order. - Make sure all the ioctl calls in obd.c are packed. --- diff --git a/lustre/include/linux/lustre_handles.h b/lustre/include/linux/lustre_handles.h index 993a323..f644cf1 100644 --- a/lustre/include/linux/lustre_handles.h +++ b/lustre/include/linux/lustre_handles.h @@ -30,10 +30,10 @@ struct portals_handle { /* handles.c */ /* Add a handle to the hash table */ -void portals_handle_hash(struct portals_handle *, portals_handle_addref_cb); -void portals_handle_unhash(struct portals_handle *); -void *portals_handle2object(__u64 cookie); -int portals_handle_init(void); -void portals_handle_cleanup(void); +void class_handle_hash(struct portals_handle *, portals_handle_addref_cb); +void class_handle_unhash(struct portals_handle *); +void *class_handle2object(__u64 cookie); +int class_handle_init(void); +void class_handle_cleanup(void); #endif diff --git a/lustre/ptlrpc/lustre_peer.c b/lustre/ptlrpc/lustre_peer.c deleted file mode 100644 index d9042f8..0000000 --- a/lustre/ptlrpc/lustre_peer.c +++ /dev/null @@ -1,125 +0,0 @@ - - - -struct uuid_nid_data { - struct list_head head; - char *uuid; - __u32 nid; - __u32 nal; - ptl_handle_ni_t ni; -}; - - -/* FIXME: This should probably become more elegant than a global linked list */ -static struct list_head g_uuid_list; -static spinlock_t g_uuid_lock; - - -int lustre_uuid_to_peer(char *uuid, struct lustre_peer *peer) -{ - struct list_head *tmp; - - spin_lock (&g_uuid_lock); - - list_for_each(tmp, &g_uuid_list) { - struct uuid_nid_data *data = - list_entry(tmp, struct uuid_nid_data, head); - - if (strcmp(data->uuid, uuid) == 0) { - peer->peer_nid = data->nid; - peer->peer_ni = data->ni; - - spin_unlock (&g_uuid_lock); - return 0; - } - } - - spin_unlock (&g_uuid_lock); - return -1; -} - -/* delete only one entry if uuid is specified, otherwise delete all */ -static int lustre_add_uuid(char *uuid, __u64 nid, __u32 nal) -{ - const ptl_handle_ni_t *nip; - struct uuid_nid_data *data; - int rc; - int nob = strnlen (uuid, PAGE_SIZE) + 1; - - if (nob > PAGE_SIZE) - return -EINVAL; - - nip = lustre_get_ni (nal); - if (nip == NULL) { - CERROR("get_ni failed: is the NAL module loaded?\n"); - return -EIO; - } - - rc = -ENOMEM; - PORTAL_ALLOC(data, sizeof(*data)); - if (data == NULL) - goto fail_0; - - PORTAL_ALLOC(data->uuid, nob); - if (data == NULL) - goto fail_1; - - memcpy(data->uuid, uuid, nob); - data->nid = nid; - data->nal = nal; - data->ni = *nip; - - spin_lock (&g_uuid_lock); - - list_add(&data->head, &g_uuid_list); - - spin_unlock (&g_uuid_lock); - - return 0; - - fail_1: - PORTAL_FREE (data, sizeof (*data)); - fail_0: - lustre_put_ni (nal); - return (rc); -} - -static int lustre_del_uuid (char *uuid) -{ - struct list_head deathrow; - struct list_head *tmp; - struct list_head *n; - struct uuid_nid_data *data; - - INIT_LIST_HEAD (&deathrow); - - spin_lock (&g_uuid_lock); - - list_for_each_safe(tmp, n, &g_uuid_list) { - data = list_entry(tmp, struct uuid_nid_data, head); - - if (uuid == NULL || strcmp(data->uuid, uuid) == 0) { - list_del (&data->head); - list_add (&data->head, &deathrow); - if (uuid) - break; - } - } - - spin_unlock (&g_uuid_lock); - - if (list_empty (&deathrow)) - return -EINVAL; - - do { - data = list_entry(deathrow.next, struct uuid_nid_data, head); - - list_del (&data->head); - - lustre_put_ni (data->nal); - PORTAL_FREE(data->uuid, strlen(data->uuid) + 1); - PORTAL_FREE(data, sizeof(*data)); - } while (!list_empty (&deathrow)); - - return 0; -}