]> sourceware.org Git - lvm2.git/commit
dev_manager: do not mark snapshot origins as unusable devices just because of possibl...
authorPeter Rajnoha <prajnoha@redhat.com>
Fri, 9 Jan 2015 10:24:16 +0000 (11:24 +0100)
committerPeter Rajnoha <prajnoha@redhat.com>
Fri, 9 Jan 2015 10:24:16 +0000 (11:24 +0100)
commitc0e17bca90326104020ba31b00fb9f66abf278b6
tree08bba60fc7310b7f899835c661f0a8e12f9cae6c
parent9dbeacf303f34d4a9f4ccad666e44ca55b83fada
dev_manager: do not mark snapshot origins as unusable devices just because of possible blocked mirror underneath

At first, all snapshot-origins where marked as unusable unconditionally
here, but we can't cut off whole snapshot-origin use in a stack just
because of this possible mirror state. This whole "device_is_usable"
check was even incorrectly part of persistent filter before commit
a843d0d97c66aae1872c05b0f6cf4bda176aae2 (where filter cleanup was
done).

The persistent filter is used only if obtain_device_list_from_udev=0,
which means that the former check for snapshot-origin here had not even
been hit with default configuration for a few years before commit
a843d0d97c66aae1872c05b0f6cf4bda176aae2 (the check for snapshot-origin and
skipping of this LV was introduced with commit a71d6051ed3d72af6895733c599cc44b49f24dbb
back in 2010).

The obtain_device_list_from_udev=1 (and hence not using persistent
filter and hence not hitting this check for snapshot-origins and skipping) has been
in action since commit edcda01a1e18af6599275801a8237fe10112ed6f (that is 2011).
So for 3 years this condition was not even checked with default configuration,
making it superfluous.

This all changed in 2014 with commit 8a843d0d97c66aae1872c05b0f6cf4bda176aae2
where "filter-usable" is introduced  and since then all snapshot-origins
have been marked as unusable more often than before and making snapshot-origins
practically unusable in a stack.

This patch removes this incorrect check from commit a71d6051ed3d72af6895733c599cc44b49f24dbb
which caused snapshot-origins to be unusable more often recently.

If we want to fix this eventually in a correct way, we need to look
down the stack and if snapshot-origin is hit and there's a blocked
mirror underneath, only then mark the device as unusable. But mirrors
in stack are not supported anymore so it's questionable whether it's
worth spending more time on this at all...
lib/activate/dev_manager.c
This page took 0.033957 seconds and 5 git commands to generate.