lkml.org 
[lkml]   [2010]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] rbd: replace the rbd sysfs interface
    On Wed, Dec 01, 2010 at 11:25:16AM -0800, Sage Weil wrote:
    > Hi Greg,
    >
    > I'm sure you're busy and as tired of this thread as we are, but I think
    > it's close and we have (I hope) just one remaining question. The current
    > patch (see below) gives us

    Sorry, I got distracted by a snowstorm knocking out my power for a few
    days and then a holliday :)

    > /sys/bus/rbd/{add,remove}
    > /sys/bus/rbd/devices/<devid>/ <-- struct device
    > /sys/bus/rbd/devices/<devid>/{some dev attrs}
    > /sys/bus/rbd/devices/<devid>/snap_<snapid>/ <-- struct device
    > /sys/bus/rbd/devices/<devid>/snap_<snapid>/{some snap attrs}
    >
    > This works, and I is (I hope) using struct device properly. The only
    > problem, purely from a user interface standpoint, is that the snaps are
    > mixed in with attributes, so anybody wanting to iterate over snaps needs
    > to do something crufty like
    >
    > $ for snap in `ls /sys/bus/rbd/devices/$id | grep ^snap_ | cut -c 6-`; do ...

    What's wrong with:
    for snap in `ls /sys/bus/rbd/devices/$id/snap_*`; do ...
    instead?

    And you would be using libudev ideally for a .c file, and iterating over
    the devices is pretty trivial that way from what I have seen.

    > Adding an intermediate snaps/ subdir would let them instead do
    >
    > $ for snap in `ls /sys/bus/rbd/devices/$id/snaps/`; do ...
    >
    > without worrying about the (arbitrarily named) snaps from colliding with
    > device attributes. Assuming that is a preferable interface, is the
    > "right" way to do that to make "snaps" a struct device? Or is there a
    > good reason why that is not preferable?

    It's not preferable as that "snaps" directory is a "blank" in the device
    tree, not showing the heiarchy properly. You can't walk the devices
    back from the devices in snaps/ to the parent properly (i.e. you would
    get stuck at the snaps/ directory as it's not a struct device, but a
    random kobject.

    Hope this helps,

    greg k-h


    \
     
     \ /
      Last update: 2010-12-01 20:51    [W:4.241 / U:0.668 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site