Al Viro 49824b5c87 configfs: provide exclusion between IO and removals
commit b0841eefd9693827afb9888235e26ddd098f9cef upstream.

Make sure that attribute methods are not called after the item
has been removed from the tree.  To do so, we
	* at the point of no return in removals, grab ->frag_sem
exclusive and mark the fragment dead.
	* call the methods of attributes with ->frag_sem taken
shared and only after having verified that the fragment is still
alive.

	The main benefit is for method instances - they are
guaranteed that the objects they are accessing *and* all ancestors
are still there.  Another win is that we don't need to bother
with extra refcount on config_item when opening a file -
the item will be alive for as long as it stays in the tree, and
we won't touch it/attributes/any associated data after it's
been removed from the tree.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-11-12 19:15:50 +01:00
..
2016-10-15 12:09:13 -07:00
2019-08-06 18:29:38 +02:00
2019-05-31 06:48:13 -07:00
2018-12-17 09:38:35 +01:00
2017-11-30 08:39:04 +00:00
2019-03-13 14:04:52 -07:00
2018-12-21 14:11:31 +01:00
2016-09-27 21:20:53 -04:00
2018-02-17 13:21:15 +01:00
2017-06-14 15:06:01 +02:00