char *lwp_name = lwp->lpd_obd->obd_name;
char *server_uuid = NULL;
char *ptr;
+ int uuid_len = -1;
struct obd_import *imp;
int len = strlen(lwp_name) + 1;
int rc;
+ const char *lwp_marker = "-" LUSTRE_LWP_NAME "-";
ENTRY;
lwp->lpd_notify_task = NULL;
if (server_uuid == NULL)
GOTO(out, rc = -ENOMEM);
- snprintf(server_uuid, len, "-%s-", LUSTRE_LWP_NAME);
- ptr = cfs_strrstr(lwp_name, server_uuid);
- if (ptr == NULL) {
+ ptr = lwp_name;
+ while (ptr && (ptr = strstr(ptr+1, lwp_marker)) != NULL)
+ uuid_len = ptr - lwp_name;
+
+ if (uuid_len < 0) {
CERROR("%s: failed to get server_uuid from lwp_name: rc = %d\n",
lwp_name, -EINVAL);
GOTO(out, rc = -EINVAL);
}
- strncpy(server_uuid, lwp_name, ptr - lwp_name);
- server_uuid[ptr - lwp_name] = '\0';
+ strncpy(server_uuid, lwp_name, uuid_len);
strlcat(server_uuid, "_UUID", len);
lustre_cfg_bufs_reset(bufs, lwp_name);
lustre_cfg_bufs_set_string(bufs, 1, server_uuid);
struct lwp_device *m = lu2lwp_dev(lu);
ENTRY;
- if (atomic_read(&lu->ld_ref) && lu->ld_site) {
- LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_ERROR, NULL);
- lu_site_print(env, lu->ld_site, &msgdata, lu_cdebug_printer);
- }
+ lu_site_print(env, lu->ld_site, &lu->ld_ref, D_ERROR,
+ lu_cdebug_printer);
lu_device_fini(&m->lpd_dev);
OBD_FREE_PTR(m);
RETURN(NULL);
RETURN(NULL);
}
-static struct lu_device_type_operations lwp_device_type_ops = {
- .ldto_device_alloc = lwp_device_alloc,
- .ldto_device_free = lwp_device_free,
- .ldto_device_fini = lwp_device_fini
+static const struct lu_device_type_operations lwp_device_type_ops = {
+ .ldto_device_alloc = lwp_device_alloc,
+ .ldto_device_free = lwp_device_free,
+ .ldto_device_fini = lwp_device_fini
};
struct lu_device_type lwp_device_type = {