5f81880d52
Normally kobjects and their sysfs representation belong to global root, however it is not necessarily the case for objects in separate namespaces. For example, objects in separate network namespace logically belong to the container's root and not global root. This change lays groundwork for allowing network namespace objects ownership to be transferred to container's root user by defining get_ownership() callback in ktype structure and using it in sysfs code to retrieve desired uid/gid when creating sysfs objects for given kobject. Co-Developed-by: Tyler Hicks <tyhicks@canonical.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Tyler Hicks <tyhicks@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net>
42 lines
844 B
C
42 lines
844 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* fs/sysfs/sysfs.h - sysfs internal header file
|
|
*
|
|
* Copyright (c) 2001-3 Patrick Mochel
|
|
* Copyright (c) 2007 SUSE Linux Products GmbH
|
|
* Copyright (c) 2007 Tejun Heo <teheo@suse.de>
|
|
*/
|
|
|
|
#ifndef __SYSFS_INTERNAL_H
|
|
#define __SYSFS_INTERNAL_H
|
|
|
|
#include <linux/sysfs.h>
|
|
|
|
/*
|
|
* mount.c
|
|
*/
|
|
extern struct kernfs_node *sysfs_root_kn;
|
|
|
|
/*
|
|
* dir.c
|
|
*/
|
|
extern spinlock_t sysfs_symlink_target_lock;
|
|
|
|
void sysfs_warn_dup(struct kernfs_node *parent, const char *name);
|
|
|
|
/*
|
|
* file.c
|
|
*/
|
|
int sysfs_add_file_mode_ns(struct kernfs_node *parent,
|
|
const struct attribute *attr, bool is_bin,
|
|
umode_t amode, kuid_t uid, kgid_t gid,
|
|
const void *ns);
|
|
|
|
/*
|
|
* symlink.c
|
|
*/
|
|
int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target,
|
|
const char *name);
|
|
|
|
#endif /* __SYSFS_INTERNAL_H */
|