char_dev: pin parent kobject
authorDmitry Torokhov <[email protected]>
Mon, 22 Oct 2012 00:57:19 +0000 (17:57 -0700)
committerLinus Torvalds <[email protected]>
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 <[email protected]>
Acked-by: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
fs/char_dev.c