[PATCH driver-core-next] kernfs: fix get_active failure handling in kernfs_seq_*()

2014-01-14 Thread Tejun Heo
When kernfs_seq_start() fails to obtain an active reference, it returns ERR_PTR(-ENODEV). kernfs_seq_stop() is then invoked with the error pointer value; however, it still proceeds to invoke kernfs_put_active() on the node leading to unbalanced put. If kernfs_seq_stop() is called even after

[PATCH driver-core-next] kernfs: fix get_active failure handling in kernfs_seq_*()

2014-01-14 Thread Tejun Heo
When kernfs_seq_start() fails to obtain an active reference, it returns ERR_PTR(-ENODEV). kernfs_seq_stop() is then invoked with the error pointer value; however, it still proceeds to invoke kernfs_put_active() on the node leading to unbalanced put. If kernfs_seq_stop() is called even after