diff options
author | Philipp Reisner | 2011-04-24 10:53:19 +0200 |
---|---|---|
committer | Philipp Reisner | 2012-11-08 16:49:06 +0100 |
commit | 0ace9dfabec3c1e96a1cd9fe0791ecbe6737c2f9 (patch) | |
tree | de80467afbc59c4d98cdf6a3defa55fee051ac98 /drivers/block/drbd/drbd_main.c | |
parent | drbd: Basic refcounting for drbd_tconn (diff) | |
download | kernel-qcow2-linux-0ace9dfabec3c1e96a1cd9fe0791ecbe6737c2f9.tar.gz kernel-qcow2-linux-0ace9dfabec3c1e96a1cd9fe0791ecbe6737c2f9.tar.xz kernel-qcow2-linux-0ace9dfabec3c1e96a1cd9fe0791ecbe6737c2f9.zip |
drbd: Take a reference on tconn when finding a tconn by name
Rule #3 of kref.txt
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 11427f59c5af..f0a0e1759bab 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -2362,7 +2362,7 @@ static void drbd_init_workqueue(struct drbd_work_queue* wq) INIT_LIST_HEAD(&wq->q); } -struct drbd_tconn *conn_by_name(const char *name) +struct drbd_tconn *conn_get_by_name(const char *name) { struct drbd_tconn *tconn; @@ -2371,8 +2371,10 @@ struct drbd_tconn *conn_by_name(const char *name) down_read(&drbd_cfg_rwsem); list_for_each_entry(tconn, &drbd_tconns, all_tconn) { - if (!strcmp(tconn->name, name)) + if (!strcmp(tconn->name, name)) { + kref_get(&tconn->kref); goto found; + } } tconn = NULL; found: |