summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/drbd/drbd_bitmap.c16
-rw-r--r--drivers/block/drbd/drbd_int.h3
-rw-r--r--drivers/block/drbd/drbd_main.c20
3 files changed, 11 insertions, 28 deletions
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 08259c101183..1aa29f8fdfe1 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -118,10 +118,10 @@ static void __bm_print_lock_info(struct drbd_device *device, const char *func)
struct drbd_bitmap *b = device->bitmap;
if (!__ratelimit(&drbd_ratelimit_state))
return;
- drbd_err(device, "FIXME %s in %s, bitmap locked for '%s' by %s\n",
- drbd_task_to_thread_name(first_peer_device(device)->connection, current),
- func, b->bm_why ?: "?",
- drbd_task_to_thread_name(first_peer_device(device)->connection, b->bm_task));
+ drbd_err(device, "FIXME %s[%d] in %s, bitmap locked for '%s' by %s[%d]\n",
+ current->comm, task_pid_nr(current),
+ func, b->bm_why ?: "?",
+ b->bm_task->comm, task_pid_nr(b->bm_task));
}
void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags)
@@ -137,10 +137,10 @@ void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags)
trylock_failed = !mutex_trylock(&b->bm_change);
if (trylock_failed) {
- drbd_warn(device, "%s going to '%s' but bitmap already locked for '%s' by %s\n",
- drbd_task_to_thread_name(first_peer_device(device)->connection, current),
- why, b->bm_why ?: "?",
- drbd_task_to_thread_name(first_peer_device(device)->connection, b->bm_task));
+ drbd_warn(device, "%s[%d] going to '%s' but bitmap already locked for '%s' by %s[%d]\n",
+ current->comm, task_pid_nr(current),
+ why, b->bm_why ?: "?",
+ b->bm_task->comm, task_pid_nr(b->bm_task));
mutex_lock(&b->bm_change);
}
if (BM_LOCKED_MASK & b->bm_flags)
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index 1d78a09c4ca8..7293ea5ccabb 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -264,7 +264,7 @@ struct drbd_thread {
int (*function) (struct drbd_thread *);
struct drbd_connection *connection;
int reset_cpu_mask;
- char name[9];
+ const char *name;
};
static inline enum drbd_thread_state get_t_state(struct drbd_thread *thi)
@@ -870,7 +870,6 @@ enum dds_flags {
extern void drbd_init_set_defaults(struct drbd_device *device);
extern int drbd_thread_start(struct drbd_thread *thi);
extern void _drbd_thread_stop(struct drbd_thread *thi, int restart, int wait);
-extern char *drbd_task_to_thread_name(struct drbd_connection *connection, struct task_struct *task);
#ifdef CONFIG_SMP
extern void drbd_thread_current_set_cpu(struct drbd_thread *thi);
#else
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 64a084c159ee..6c86807f22ec 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -368,14 +368,14 @@ restart:
}
static void drbd_thread_init(struct drbd_connection *connection, struct drbd_thread *thi,
- int (*func) (struct drbd_thread *), char *name)
+ int (*func) (struct drbd_thread *), const char *name)
{
spin_lock_init(&thi->t_lock);
thi->task = NULL;
thi->t_state = NONE;
thi->function = func;
thi->connection = connection;
- strncpy(thi->name, name, ARRAY_SIZE(thi->name));
+ thi->name = name;
}
int drbd_thread_start(struct drbd_thread *thi)
@@ -475,22 +475,6 @@ void _drbd_thread_stop(struct drbd_thread *thi, int restart, int wait)
wait_for_completion(&thi->stop);
}
-static struct drbd_thread *drbd_task_to_thread(struct drbd_connection *connection, struct task_struct *task)
-{
- struct drbd_thread *thi =
- task == connection->receiver.task ? &connection->receiver :
- task == connection->asender.task ? &connection->asender :
- task == connection->worker.task ? &connection->worker : NULL;
-
- return thi;
-}
-
-char *drbd_task_to_thread_name(struct drbd_connection *connection, struct task_struct *task)
-{
- struct drbd_thread *thi = drbd_task_to_thread(connection, task);
- return thi ? thi->name : task->comm;
-}
-
int conn_lowest_minor(struct drbd_connection *connection)
{
struct drbd_peer_device *peer_device;