Hello,
This is an updated version of "dm/md dependency tree in sysfs" patch.
For example, if dm-0 maps to sda, we'll have following symlinks;
/sys/block/dm-0/slaves/sda --> /sys/block/sda
/sys/block/sda/holders/dm-0 --> /sys/block/dm-0
Difference from the previous version is a fix for a problem
of calling possibly-sleeping function inside the fast path.
There were 3 such calls in my previous bd_claim patch:
- kmalloc(GFP_KERNEL)
- sysfs_create_symlink()
- sysfs_remove_symlink()
The allocation code is moved outside of locks.
Symlink operations needs to be atomic, so they are moved out
of global bdev_lock and use bdev->bd_sem instead.
Comments are welcome.
I tested this on 2.6.16-rc6 and 2.6.16-rc6-mm1 with both
CONFIG_PREEMPT and CONFIG_DEBUG_SPINLOCK_SLEEP enabled
and saw no warnings in kernel log.
Patches included are:
1. [PATCH 1/7] kobject_add_dir
Adding kobject_add_dir() function which creates
a subdirectory for a given kobject.
2. [PATCH 2/7] add holders/slaves subdirectory to /sys/block
Creating "slaves" and "holders" directories in /sys/block/<disk>,
creating "holders" directory under /sys/block/<disk>/<partition>
3. [PATCH 3/7] bd_claim_by_kobject
Adding bd_claim_by_kobject() function which takes kobject as
additional signature of holder device and creates sysfs symlinks
between holder device and claimed device.
bd_release_from_kobject() is a counter part of bd_claim_by_kobject.
4. [PATCH 4/7] bd_claim_by_disk
Variants which take gendisk instead of kobject
and do kobject_{get,put}(&gendisk->kobj).
5. [PATCH 5/7] md to use bd_claim_by_disk
Use bd_claim_by_disk.
6. [PATCH 6/7] dm to use bd_claim_by_disk
Use bd_claim_by_disk.
7. [PATCH 7/7] conver bd_sem to bd_mutex
bd_sem is converted to bd_mutex in 2.6.16-rc6-mm1.
The patch follows that conversion.
Patch 3 includes the fix mentioned above.
Patch 6 depends on dm-table-store-md.patch and dm-tidy-mdptr.patch
which were committed to -mm yesterday.
Patch 7 depends on sem2mutex-blockdev-2.patch in 2.6.16-rc6-mm1.
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]