char_dev: pin parent kobject
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 22 Oct 2012 00:57:19 +0000 (17:57 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 22 Oct 2012 05:50:37 +0000 (08:50 +0300)
commit2f0157f13f42800aa3d9017ebb0fb80a65f7b2de
tree7b2b3299b6ef785790336042ab28c0bffa37debb
parent6f0c0580b70c89094b3422ba81118c7b959c7556
char_dev: pin parent kobject

In certain cases (for example when a cdev structure is embedded into
another object whose lifetime is controlled by a separate kobject) it is
beneficial to tie lifetime of another object to the lifetime of
character device so that related object is not freed until after
char_dev object is freed.

To achieve this let's pin kobject's parent when doing cdev_add() and
unpin when last reference to cdev structure is being released.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/char_dev.c