Date: Tue, 25 Aug 2009 21:30:12 +0300 From: Andriy Gapon <avg@icyb.net.ua> To: gnome@FreeBSD.org Subject: libvolume_id: narrow down ufs detection Message-ID: <4A942DB4.8020408@icyb.net.ua>
next in thread | raw e-mail | index | archive | help
I think that libvolume_id should compare fs size to provider size similarly to what geom_label does and for the same reasons. With geom providers stacked upon each other current libvolume_id may see the same fs on multiple volume-like devices. An example: o ad6s1a and ad10s1a comprise a geom_mirror named 'bootgm' o there is a UFS on bootgm and it is labeled as 'bootfs' Snippets from lshal output: ======================= udi = '/org/freedesktop/Hal/devices/volume_label_bootfs_0' block.device = '/dev/ad6s1a' (string) block.is_volume = true (bool) block.major = 0 (0x0) (int) block.minor = 92 (0x5c) (int) block.storage_device = '/org/freedesktop/Hal/devices/pci_8086_2922_storage_0' (string) info.capabilities = {'block', 'volume'} (string list) info.category = 'volume' (string) info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list) info.parent = '/org/freedesktop/Hal/devices/volume_part2_size_6440361984_0' (string) info.product = 'bootfs' (string) info.subsystem = 'block' (string) info.udi = '/org/freedesktop/Hal/devices/volume_label_bootfs_0' (string) org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list) org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list) org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list) org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list) volume.block_size = 512 (0x200) (uint64) volume.fstype = 'ufs' (string) volume.fsusage = 'filesystem' (string) volume.fsversion = '2' (string) volume.ignore = false (bool) volume.is_disc = false (bool) volume.is_mounted = false (bool) volume.is_mounted_read_only = false (bool) volume.is_partition = false (bool) volume.label = 'bootfs' (string) volume.mount.valid_options = {'ro', 'noexec', 'noatime'} (string list) volume.mount_point = '' (string) volume.num_blocks = 4194304 (0x400000) (uint64) volume.size = 2147483648 (0x80000000) (uint64) volume.uuid = '' (string) =============================== udi = '/org/freedesktop/Hal/devices/volume_label_bootfs' block.device = '/dev/ufs/bootfs' (string) block.is_volume = true (bool) block.major = 0 (0x0) (int) block.minor = 112 (0x70) (int) block.storage_device = '/org/freedesktop/Hal/devices/pci_8086_2922_storage' (string) info.capabilities = {'block', 'volume'} (string list) info.category = 'volume' (string) info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list) info.parent = '/org/freedesktop/Hal/devices/volume_size_2147483136' (string) info.product = 'bootfs' (string) info.subsystem = 'block' (string) info.udi = '/org/freedesktop/Hal/devices/volume_label_bootfs' (string) org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list) org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list) org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list) org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list) volume.block_size = 512 (0x200) (uint64) volume.fstype = 'ufs' (string) volume.fsusage = 'filesystem' (string) volume.fsversion = '2' (string) volume.ignore = false (bool) volume.is_disc = false (bool) volume.is_mounted = true (bool) volume.is_mounted_read_only = false (bool) volume.is_partition = false (bool) volume.label = 'bootfs' (string) volume.mount.valid_options = {'ro', 'noexec', 'noatime'} (string list) volume.mount_point = '/.bootdir' (string) volume.num_blocks = 4194303 (0x3fffff) (uint64) volume.size = 2147483136 (0x7ffffe00) (uint64) volume.uuid = '' (string) ============================= I think that UFS on the first volume should not be reported. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A942DB4.8020408>