-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-cor…
…e-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (38 commits) net: Expose all network devices in a namespaces in sysfs hotplug: netns aware uevent_helper kobj: Send hotplug events in the proper namespace. netlink: Implment netlink_broadcast_filtered net/sysfs: Fix the bitrot in network device kobject namespace support netns: Teach network device kobjects which namespace they are in. kobject: Send hotplug events in all network namespaces driver-core: fix Typo in drivers/base/core.c for CONFIG_MODULE pci: check caps from sysfs file open to read device dependent config space sysfs: add struct file* to bin_attr callbacks sysfs: Remove usage of S_BIAS to avoid merge conflict with the vfs tree sysfs: Don't use enums in inline function declaration. sysfs-namespaces: add a high-level Documentation file sysfs: Comment sysfs directory tagging logic driver core: Implement ns directory support for device classes. sysfs: Implement sysfs_delete_link sysfs: Add support for tagged directories with untagged members. sysfs: Implement sysfs tagged directory support. kobj: Add basic infrastructure for dealing with namespaces. sysfs: Remove double free sysfs_get_sb ...
- Loading branch information
Showing
94 changed files
with
1,165 additions
and
411 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
Sysfs tagging | ||
------------- | ||
|
||
(Taken almost verbatim from Eric Biederman's netns tagging patch | ||
commit msg) | ||
|
||
The problem. Network devices show up in sysfs and with the network | ||
namespace active multiple devices with the same name can show up in | ||
the same directory, ouch! | ||
|
||
To avoid that problem and allow existing applications in network | ||
namespaces to see the same interface that is currently presented in | ||
sysfs, sysfs now has tagging directory support. | ||
|
||
By using the network namespace pointers as tags to separate out the | ||
the sysfs directory entries we ensure that we don't have conflicts | ||
in the directories and applications only see a limited set of | ||
the network devices. | ||
|
||
Each sysfs directory entry may be tagged with zero or one | ||
namespaces. A sysfs_dirent is augmented with a void *s_ns. If a | ||
directory entry is tagged, then sysfs_dirent->s_flags will have a | ||
flag between KOBJ_NS_TYPE_NONE and KOBJ_NS_TYPES, and s_ns will | ||
point to the namespace to which it belongs. | ||
|
||
Each sysfs superblock's sysfs_super_info contains an array void | ||
*ns[KOBJ_NS_TYPES]. When a a task in a tagging namespace | ||
kobj_nstype first mounts sysfs, a new superblock is created. It | ||
will be differentiated from other sysfs mounts by having its | ||
s_fs_info->ns[kobj_nstype] set to the new namespace. Note that | ||
through bind mounting and mounts propagation, a task can easily view | ||
the contents of other namespaces' sysfs mounts. Therefore, when a | ||
namespace exits, it will call kobj_ns_exit() to invalidate any | ||
sysfs_dirent->s_ns pointers pointing to it. | ||
|
||
Users of this interface: | ||
- define a type in the kobj_ns_type enumeration. | ||
- call kobj_ns_type_register() with its kobj_ns_type_operations which has | ||
- current_ns() which returns current's namespace | ||
- netlink_ns() which returns a socket's namespace | ||
- initial_ns() which returns the initial namesapce | ||
- call kobj_ns_exit() when an individual tag is no longer valid |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.