linux/drivers/base
Dan Williams e105b8bfc7 sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor
Why?:
There are occasions where userspace would like to access sysfs
attributes for a device but it may not know how sysfs has named the
device or the path.  For example what is the sysfs path for
/dev/disk/by-id/ata-ST3160827AS_5MT004CK?  With this change a call to
stat(2) returns the major:minor then userspace can see that
/sys/dev/block/8:32 links to /sys/block/sdc.

What are the alternatives?:
1/ Add an ioctl to return the path: Doable, but sysfs is meant to reduce
   the need to proliferate ioctl interfaces into the kernel, so this
   seems counter productive.

2/ Use udev to create these symlinks: Also doable, but it adds a
   udev dependency to utilities that might be running in a limited
   environment like an initramfs.

3/ Do a full-tree search of sysfs.

[kay.sievers@vrfy.org: fix duplicate registrations]
[kay.sievers@vrfy.org: cleanup suggestions]

Cc: Neil Brown <neilb@suse.de>
Cc: Tejun Heo <htejun@gmail.com>
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
Reviewed-by: SL Baur <steve@xemacs.org>
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
Acked-by: Mark Lord <lkml@rtr.ca>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21 21:54:40 -07:00
..
power Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-07-16 17:25:46 -07:00
attribute_container.c SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00
base.h driver core: remove no longer used "struct class_device" 2008-04-30 16:52:49 -07:00
bus.c bus_remove_device: be more careful about incomplete initialization 2008-04-22 17:40:36 -07:00
class.c sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor 2008-07-21 21:54:40 -07:00
core.c sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor 2008-07-21 21:54:40 -07:00
cpu.c cpu: change cpu_sys_devices from array to per_cpu variable 2008-05-01 08:04:02 -07:00
dd.c driver core: replace remaining __FUNCTION__ occurrences 2008-04-19 19:10:29 -07:00
devres.c Driver core: fix devres_release_all() return value 2007-07-11 16:09:02 -07:00
dma-mapping.c devres: device resource management 2007-02-09 17:39:36 -05:00
driver.c driver core: warn about duplicate driver names on the same bus 2008-04-30 16:52:47 -07:00
firmware_class.c firmware: allow firmware files to be built into kernel image 2008-07-10 14:30:13 +01:00
firmware.c firmware: change firmware_kset to firmware_kobj 2008-01-24 20:40:23 -08:00
hypervisor.c kobject: convert /sys/hypervisor to use kobject_create 2008-01-24 20:40:15 -08:00
init.c Driver core: coding style fixes 2008-01-24 22:50:12 -08:00
isa.c [PATCH] Driver model: add ISA bus 2006-06-21 12:40:49 -07:00
Kconfig firmware: Add CONFIG_FIRMWARE_IN_KERNEL option. 2008-07-10 14:47:20 +01:00
Makefile Merge branch 'dmapool' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-05 19:05:48 -08:00
map.c [PATCH] kobj_map semaphore to mutex conversion 2006-03-20 13:42:58 -08:00
memory.c memory: Introduce exports for memory notifiers 2008-05-13 01:31:38 -04:00
module.c Driver core: move the static kobject out of struct driver 2008-01-24 20:40:35 -08:00
node.c mm: switch node meminfo Active & Inactive pages to Kbytes 2008-07-04 10:40:09 -07:00
platform.c Implement new suspend and hibernation callbacks for platform busses 2008-06-10 10:59:51 -07:00
sys.c Fix bogus warning in sysdev_driver_register() 2008-05-06 13:22:42 -07:00
topology.c Merge branch 'core/topology' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-15 10:32:39 -07:00
transport_class.c SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00