[dm-devel] [PATCH 0/3] sysfs representation of stacked devices (dm/md) (rev.2)

Jun'ichi Nomura j-nomura at ce.jp.nec.com
Wed Feb 22 16:06:24 UTC 2006


Hello,

This is a revised set of pathces which provides common
representation of dependencies between stacked devices (dm and md)
in sysfs.

Variants of bd_claim/bd_release are added to accept a kobject
and create symlinks between the claimed bdev and the holder.

dm/md will give a child of its gendisk kobject to bd_claim.
For example, if dm-0 maps to sda, we have the following symlinks;
   /sys/block/dm-0/slaves/sda --> /sys/block/sda
   /sys/block/sda/holders/dm-0 --> /sys/block/dm-0

Comments are welcome.

A few points I would appreciate comments/reviews from maintainers:
  About sysfs
    - I confirmed sysfs_remove_symlink() and kobject_del() don't
      allocate memory in 2.6.15 and it seems true on the git head.
      I would like to make sure it's true in future versions of kernel
      because they are called during device-mapper's table swapping
      where I/O to free memory could deadlock on the dm device.
      What is the recommended way to do that?
      Or can I just expect these functions will not allocate memory
      in future versions of kernel?
  About dm
    - To get a reference to mapped_device, table_load() do
      dm_get() before populating table. It will dm_put() when
      the table is being discarded or the table is being activated.
  About md
    - Rather than carrying mddev pointer around, bd_claim is now
      made twice. First is not changed at lock_rdev().
      The second is at bind_rdev_to_array() where kobject is passed
      and symlinks are created.

-- 
Jun'ichi Nomura, NEC Solutions (America), Inc.




More information about the dm-devel mailing list