• Al Viro's avatar
    configfs: provide exclusion between IO and removals · b0841eef
    Al Viro authored
    
    
    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: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    b0841eef