On 12/02/2014 08:11 PM, Phillip Susi wrote:
> On 12/2/2014 7:23 AM, Austin S Hemmelgarn wrote:
>> Stupid thought, why don't we just add blacklisting based on device
>> path like LVM has for pvscan?
>
> That isn't logic that belongs in the kernel, so that is going down the
> path of yanking out the device auto probing from btrfs and instead
> writing a mount.btrfs helper that can use policies like blacklisting
> to auto locate all of the correct devices and pass them all to the
> kernel at mount time.
>
I am thinking about that. Today the device discovery happens:
a) when a device appears, two udev rules run "btrfs dev scan <device>"
/lib/udev/rules.d/70-btrfs.rules
/lib/udev/rules.d/80-btrfs-lvm.rules
b) during the boot it is ran a "btrfs device scan", which scan all
the device (this happens in debian for other distros may be different)
c) after a btrfs.mkfs, which starts a device scan on each devices of
the new filesystem
d) by the user
Regarding a), the problem is simply solved adding a line like:
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", GOTO="btrfs_end"
Regarding c), it is not a problem
Regarding b) and d), the only solution that I found is to query the
udev DB inside the "btrfs dev scan" program and to skip the devices
with DM_UDEV_LOW_PRIORITY_FLAG==1. But implementing this, it would
solve all the points a), b), c), d) with one shot !
BR
G.Baroncelli
P.S.
This is the comment made by LVM by DM_UDEV_LOW_PRIORITY_FLAG:
/*
* DM_UDEV_LOW_PRIORITY_FLAG is set in case we need to instruct the
* udev rules to give low priority to the device that is currently
* processed. For example, this provides a way to select which symlinks
* could be overwritten by high priority ones if their names are equal.
* Common situation is a name based on FS UUID while using origin and
* snapshot devices.
*/
#define DM_UDEV_LOW_PRIORITY_FLAG 0x0010
https://git.fedorahosted.org/cgit/lvm2.git/tree/libdm/libdevmapper.h#n1969
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html