From: Tejun Heo <t...@kernel.org> Date: Wed, 11 Sep 2013 22:29:04 -0400
> sysfs ns (namespace) implementation became more convoluted than > necessary while trying to hide ns information from visible interface. > The relatively recent attr ns support is a good example. > > * attr ns tag is determined by sysfs_ops->namespace() callback while > dir tag is determined by kobj_type->namespace(). The placement is > arbitrary. > > * Instead of performing operations with explicit ns tag, the namespace > callback is routed through sysfs_attr_ns(), sysfs_ops->namespace(), > class_attr_namespace(), class_attr->namespace(). It's not simpler > in any sense. The only thing this convolution does is traversing > the whole stack backwards. > > The namespace callbacks are unncessary because the operations involved > are inherently synchronous. The information can be provided in in > straight-forward top-down direction and reversing that direction is > unnecessary and against basic design principles. > > This backward interface is unnecessarily convoluted and hinders > properly separating out sysfs from driver model / kobject for proper > layering. This patch updates attr ns support such that > > * sysfs_ops->namespace() and class_attr->namespace() are dropped. > > * sysfs_{create|remove}_file_ns(), which take explicit @ns param, are > added and sysfs_{create|remove}_file() are now simple wrappers > around the ns aware functions. > > * ns handling is dropped from sysfs_chmod_file(). Nobody uses it at > this point. sysfs_chmod_file_ns() can be added later if necessary. > > * Explicit @ns is propagated through class_{create|remove}_file_ns() > and netdev_class_{create|remove}_file_ns(). > > * driver/net/bonding which is currently the only user of attr > namespace is updated to use netdev_class_{create|remove}_file_ns() > with @bh->net as the ns tag instead of using the namespace callback. > > This patch should be an equivalent conversion without any functional > difference. It makes the code easier to follow, reduces lines of code > a bit and helps proper separation and layering. > > Signed-off-by: Tejun Heo <t...@kernel.org> For networking bits: Acked-by: David S. Miller <da...@davemloft.net> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/