diff options
Diffstat (limited to 'lib/kobject.c')
| -rw-r--r-- | lib/kobject.c | 26 | 
1 files changed, 9 insertions, 17 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index 82dc34c095c2..640bd98a4c8a 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -948,14 +948,14 @@ const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj)  } -const void *kobj_ns_current(enum kobj_ns_type type) +void *kobj_ns_grab_current(enum kobj_ns_type type)  { -	const void *ns = NULL; +	void *ns = NULL;  	spin_lock(&kobj_ns_type_lock);  	if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) &&  	    kobj_ns_ops_tbl[type]) -		ns = kobj_ns_ops_tbl[type]->current_ns(); +		ns = kobj_ns_ops_tbl[type]->grab_current_ns();  	spin_unlock(&kobj_ns_type_lock);  	return ns; @@ -987,23 +987,15 @@ const void *kobj_ns_initial(enum kobj_ns_type type)  	return ns;  } -/* - * kobj_ns_exit - invalidate a namespace tag - * - * @type: the namespace type (i.e. KOBJ_NS_TYPE_NET) - * @ns: the actual namespace being invalidated - * - * This is called when a tag is no longer valid.  For instance, - * when a network namespace exits, it uses this helper to - * make sure no sb's sysfs_info points to the now-invalidated - * netns. - */ -void kobj_ns_exit(enum kobj_ns_type type, const void *ns) +void kobj_ns_drop(enum kobj_ns_type type, void *ns)  { -	sysfs_exit_ns(type, ns); +	spin_lock(&kobj_ns_type_lock); +	if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && +	    kobj_ns_ops_tbl[type] && kobj_ns_ops_tbl[type]->drop_ns) +		kobj_ns_ops_tbl[type]->drop_ns(ns); +	spin_unlock(&kobj_ns_type_lock);  } -  EXPORT_SYMBOL(kobject_get);  EXPORT_SYMBOL(kobject_put);  EXPORT_SYMBOL(kobject_del);  | 
