On Fri, Feb 18, 2011 at 08:00:34PM +1100, Justin Clift wrote:
On 18/02/2011, at 7:46 PM, Jiri Denemark wrote:
<snip>
>
>> Thanks for the fix, actually It can be reproduced simply by:
>> % ./autogen.sh --with-storage-mpath=no
>> % make
>>
>> As src/util/util.c invokes "dm_is_dm_major".
>
> Yes it does, but I'm not convinced this is the right approach to fix it. Why
> should libvirt always require device-mapper libraries?
As a data point, device-mapper isn't available on non-Linux platforms. If
Osier was meaning to make it "required", I can see a problem about there. ;)
Since device-mapper is Linux specific, then by definition
virIsDevMapperDevice() will always return false on those
platforms. So there is no requirement for any device-mapper
libs on non-Linux, you just trivially make it do:
#if HAVE_DEVICE_MAPPER
bool
virIsDevMapperDevice(const char *devname)
{
struct stat buf;
if (!stat(devname, &buf) &&
S_ISBLK(buf.st_mode) &&
dm_is_dm_major(major(buf.st_rdev)))
return true;
return false;
}
#else
bool
virIsDevMapperDevice(const char *devname ATTRIBUTE_UNUSED)
{
return false;
}
#endif
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|