lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 1 Dec 2010 11:47:51 -0800
From:	Greg KH <greg@...ah.com>
To:	Sage Weil <sage@...dream.net>
Cc:	Yehuda Sadeh <yehuda@...newdream.net>, ceph-devel@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ