1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-05 13:18:20 +03:00
Commit Graph

457 Commits

Author SHA1 Message Date
Peter Rajnoha
f3645e3f4b Fix udev rules to support udev database content generated by older rules.
This can happen with older rules (without support for synthesized events)
that are still part of initrd while using new udev rules in the system itself.

The consequence was that new udev rules incorrectly assumed that not having
DM_UDEV_PRIMARY_SOURCE_FLAG set always means the uevent is synthesized and
inappropriate (device is still not properly activated) and so it should be
ignored. However, initrd is not updated automatically while updating the
libdevmapper/udev rules in the system and so we end up with the rules not
detecting and setting crucial parts in the initrd environment and the rules
in the system that rely on the information that should have been stored in
udev db (which is incorrect in this configuration, of course).

The overall consequence is that the update of libdevmapper/lvm2 without
regenerating the initrd could end up with a boot failure! Ignoring the event
means removing any existing symlinks in /dev!

To fix this, increase udev rules version to make a difference. So from now on,
mark rules without proper support for synthesized events as
DM_UDEV_RULES_VSN="1" and 2 (or higher) if that support is included.
2010-08-12 13:41:18 +00:00
Peter Rajnoha
d818035d3a Reinstate detection of inappropriate uevent with DISK_RO set and suppress it.
We still need to detect this one! We're not so strict with CHANGE events as
with the ADD events while applying filters in the rules so this one would
pass and it would process the rules prematurely (because it appears *before*
the actual CHANGE event used when resuming a DM device while setting read-only
state at the same time).
2010-08-12 13:07:08 +00:00
Peter Rajnoha
de5337b187 WHATS_NEW_DM 2010-08-11 13:12:31 +00:00
Peter Rajnoha
67ef389a69 Use built-in rules for device aliases: block/ < dm- < disk/ < mapper/ < other. 2010-08-03 13:39:27 +00:00
Zdenek Kabelac
a7ca42cb22 Wait for node creation before displaying debug info in dmsetup.
Readahead check needs to see created node - so wait till udev gets in sync.
2010-08-03 13:04:32 +00:00
Zdenek Kabelac
a8dc5260b7 Fix return status 0 for "dmsetup info -c -o help".
Solution returns success for _report_init when help is passed,
and caller needs to check for _report existance.
2010-08-03 12:56:00 +00:00
Peter Rajnoha
d33d0b01bf Add check for kernel semaphore support and disable udev_sync if not available.
udev_sync feature requires semaphores (part of System V IPC) to be configured
in kernel (CONFIG_SYSVIPC). Check whether it is supported and if not, give
a warning message and disable udev synchronisation code automatically to
avoid any further error states and associated problems.

One should use the kernel with System V IPC support enabled or libdevmapper
with udev_sync feature disabled.
2010-08-03 07:56:03 +00:00
Alasdair Kergon
9934a167a2 post-release 2010-07-28 21:58:08 +00:00
Alasdair Kergon
a1affa1dc3 day+1 2010-07-28 11:49:42 +00:00
Alasdair Kergon
23633cf632 . 2010-07-28 10:44:29 +00:00
Alasdair Kergon
2de4f65474 pre-release 2010-07-27 22:52:19 +00:00
Alasdair Kergon
38befc5ded . 2010-07-27 21:57:37 +00:00
Fabio M. Di Nitto
e34342c1f3 Add dm_create_lockfile to libdm to handle pidfiles for all daemons.
Switch dmeventd to use dm_create_lockfile and drop duplicate code.
Allow clvmd pidfile to be configurable.
Switch cmirrord and clvmd to use dm_create_lockfile.
2010-07-13 13:51:01 +00:00
Zdenek Kabelac
69ca87abad Revert previous commit as it would return also for incorrect syntax. 2010-07-08 14:29:26 +00:00
Zdenek Kabelac
e0c8e7c740 Update for dmsetup 2010-07-08 13:35:55 +00:00
Peter Rajnoha
c4cce91dce Use "nowatch" udev rule for known inappropriate devices.
For now, this is just a precaution. Normally, all the other (non-dm) rules
should check DM_UDEV_DISABLE_OTHER_RULES_FLAG and therefore avoid setting
any inotify watches as well. But let's make sure.

Support for final assignment of the "nowatch" rule (the use of ":=") will
appear in next udev release, v160. This should also work in previous udev
versions but the setting won't be sealed so any further OPTIONS="watch" will
always prevail there.

We may want to add more specific "nowatch" rules later if needed.
2010-07-07 11:22:46 +00:00
Alasdair Kergon
9de129d5b2 post-release 2010-07-07 02:37:28 +00:00
Alasdair Kergon
3512a6ad0b pre-release 2010-07-06 16:49:38 +00:00
Alasdair Kergon
b02de599a0 Fix dmlosetup snprintf %llu compiler warning. 2010-07-05 22:56:31 +00:00
Alasdair Kergon
431ca070a4 Add parentheses to some libdevmapper.h macro arguments. 2010-07-05 22:22:43 +00:00
Alasdair Kergon
ed2630dce5 Add printf format attributes to yes_no_prompt & dm_{sn,as}printf and fix a calle 2010-07-02 21:16:50 +00:00
Alasdair Kergon
54637fa44d Move dmeventd man page from install_lvm2 to install_device-mapper. (1.02.50) 2010-07-01 10:57:03 +00:00
Alasdair Kergon
4107d4d24d post-release 2010-06-30 14:50:32 +00:00
Alasdair Kergon
549e1dfb0d pre-release 2010-06-30 14:04:15 +00:00
Alasdair Kergon
4cae37c340 post-release 2010-06-23 19:35:11 +00:00
Alasdair Kergon
63f8ad01b2 pre-release 2010-06-23 17:48:41 +00:00
Alasdair Kergon
1a6159aca5 In some C++ standards, typeof is not reserved. 2010-06-23 17:03:14 +00:00
Peter Rajnoha
60e9c014a2 Fix udev rules to handle spurious events properly.
We can use DM_UDEV_PRIMARY_SOURCE_FLAG to identify the spurious events
and use it as an indication that the device has already been activated before
(and hence we can find this property in udev database).

WARNING: This change requires udev startup script to preserve udev database
from initrd. All the information stored there during activation of devices
is important for the initial "udevadm trigger --action=add" call that is
used in udev startup script. If not done this way, udev startup script needs
to define DM_UDEV_PRIMARY_SOURCE_FLAG=1 property for any ADD events it uses.
2010-06-23 17:00:32 +00:00
Milan Broz
0e93522190 Remove C++ private keyword from headers.
Add extern C definition for libdevmapper, lvm2app and lvm2cmd.
2010-06-16 13:01:25 +00:00
Alasdair Kergon
262a39dfd0 post-release 2010-06-07 10:25:43 +00:00
Alasdair Kergon
d531d56dbb pre-release 2010-06-04 17:23:49 +00:00
Peter Rajnoha
9dbad2f74d Add support for dm-mod module autoload.
A kernel patch is on its way for 2.6.35 adding support for dm-mod module
autoload. Udev v155 and higher is able to read static node information given
in modules.devname (extracted by depmod before) and will create such nodes
at its start. The first access to such node will load the module automatically
(directly in kernel) before the actual read/write operation is processed.
2010-06-01 16:08:13 +00:00
Mike Snitzer
735cac19f2 Add --type parameter description to the lvcreate man page. 2010-05-28 03:50:15 +00:00
Peter Rajnoha
60af6fb0a2 Use expected union semun for arguments in selected semaphore operations.
This is standard and expected use. It also prevents errors related with
misalignment of the arguments for semaphore operations on some architectures.
2010-05-27 15:02:56 +00:00
Alasdair Kergon
154a7af5ee post-release 2010-05-20 23:21:53 +00:00
Alasdair Kergon
fbee662499 pre-release 2010-05-20 22:27:26 +00:00
Alasdair Kergon
a0c7ead88f post-release 2010-05-17 20:18:13 +00:00
Alasdair Kergon
3eb97ffa25 pre-release 2010-05-17 18:39:01 +00:00
Alasdair Kergon
578c4098e6 Use -d to control level of messages sent to syslog by dmeventd.
Change -d to -f to run dmeventd in foreground.
(mornfall)
2010-05-14 14:56:39 +00:00
Milan Broz
8cf86745c2 Do not print encryption key in message debug output. 2010-05-13 13:31:30 +00:00
Alasdair Kergon
4bde7fc926 post-release 2010-04-30 15:48:38 +00:00
Alasdair Kergon
005ad96068 pre-release 2010-04-30 14:49:42 +00:00
Alasdair Kergon
f45bbeb497 . 2010-04-29 01:48:19 +00:00
Peter Rajnoha
68c7b86df1 Add support for new IMPORT{db} udev rule.
This rule appeared in udev v152 and it helps us to support spurious events
where we didn't have any flags set (events originated in udevadm trigger
or the watch rule). These flags are important to direct the rule application.
Now, with the help of this rule, we can regenerate old udev db content.
To implement this correctly, we need to flag all proper DM udev events with
DM_UDEV_PRIMARY_SOURCE_FLAG. That happens automatically for all ioctls
generating events originated in libdevmapper.
2010-04-28 13:37:36 +00:00
Peter Rajnoha
532834cbc2 Also include udev libs in libdevmapper.pc when udev_sync is enabled. 2010-04-26 09:05:50 +00:00
Alasdair Kergon
4d6089c042 Cache bitset locations to speed up _calc_states. (kabi) 2010-04-22 20:35:24 +00:00
Alasdair Kergon
23dd4773d4 Add a regex optimisation pass for shared character prefixes. 2010-04-20 22:31:22 +00:00
Alasdair Kergon
ea04c0775c Add dm_bitset_equal to libdevmapper. 2010-04-20 13:58:22 +00:00
Alasdair Kergon
1f9d50fa3f Add dm_bit_and. (ejt) 2010-04-19 21:23:01 +00:00
Alasdair Kergon
be29e5ab62 fix last commit 2010-04-19 21:10:20 +00:00
Alasdair Kergon
803380c203 Speed up dm_bit_get_next with ffs(). 2010-04-19 17:17:55 +00:00
Alasdair Kergon
742d1e9424 post-release 2010-04-14 21:47:48 +00:00
Alasdair Kergon
4b801e21e3 pre-release 2010-04-14 17:50:49 +00:00
Alasdair Kergon
687603a144 Fix incorrect removal of symlinks after LV deactivation fails. 2010-04-07 20:04:41 +00:00
Milan Broz
7b030379ec Wipe dm-ioctl parameters in memory after use. 2010-04-07 15:57:20 +00:00
Peter Rajnoha
940c32c5dd Strictly require libudev if udev_sync is used.
This prevents some confusion when libudev was not found so udev_sync was disabled
automatically. Configure was successful though giving only a tiny warning.

Also, if "dmsetup udevcreatecookie" is used, never return 0x000000 as a result if
udev is not running and keep the output blank.
2010-03-23 14:43:18 +00:00
Peter Rajnoha
14ad41a065 Add support for ioctl's DM_UEVENT_GENERATED_FLAG.
We need to know whether we should wait for any uevent or not when
using udev_sync. A kernel patch was posted recently that changed the
way uevents are sent on dm device resume - it is sent only if the
device has been suspended before. There's also a new DM_UEVENT_GENERATED_FLAG
in the ioctl to notify userspace whether the event was generated.

If the uevent was not generated (e.g. the situation where the device is
*not* suspended and we call a resume), we just call dm_udev_complete
explicitly from within libdevmapper itself to prevent infinite waiting
while trying to synchronise with udev processing.
2010-03-23 14:38:37 +00:00
Alasdair Kergon
aab6f07d14 post-release 2010-03-09 14:01:47 +00:00
Alasdair Kergon
23b3f55bfb pre-release 2010-03-09 13:13:07 +00:00
Milan Broz
985d87b5eb Add --help dmsetup option as the synonym for help command. 2010-03-08 16:05:07 +00:00
Milan Broz
0be2dfefdb Add --showkeys parameter description into dmsetup man page.
Also fix minor warning (-c is parameter) in man page formatting.
2010-03-08 16:04:32 +00:00
Alasdair Kergon
def0511361 post-release 2010-02-16 00:27:01 +00:00
Alasdair Kergon
29b8138482 pre-release 2010-02-15 23:53:15 +00:00
Peter Rajnoha
276d32973f Several changes in dmsetup and libdevmapper:
- add DM_UDEV_DISABLE_LIBRARY_FALLBACK udev flag to rely on udev only

 - export dm_udev_create_cookie function to create new cookies on demand

 - add --udevcookie, udevcreatecookie and udevreleasecookie for dmsetup
   (to support "udev transactions" where one cookie value can be used for
    several dmsetup calls)

 - don't use DM_UDEV_DISABLE_CHECKING env. var. anymore and set the state
   automatically (based on udev and libdevmapper dev path comparison)
2010-02-15 16:21:33 +00:00
Alasdair Kergon
adf7081163 Remove pointless versioned symlinks to dmeventd plugin libraries. 2010-02-02 14:09:17 +00:00
Alasdair Kergon
a50b7c55d3 Fix dmeventd snapshot plugin build dependency. 2010-02-02 14:03:50 +00:00
Alasdair Kergon
448f8c4240 pre-release 2010-01-23 02:14:30 +00:00
Alasdair Kergon
8e44e884a2 post-release 2010-01-22 01:09:09 +00:00
Alasdair Kergon
6107f4a02a pre-release 2010-01-21 23:55:17 +00:00
Jonathan Earl Brassow
4a13ae4c95 udpate WHATS_NEW* 2010-01-15 16:18:14 +00:00
Alasdair Kergon
f6d95e19c4 post-release 2010-01-14 14:42:06 +00:00
Alasdair Kergon
801eff0c52 pre-release 2010-01-14 14:02:34 +00:00
Mike Snitzer
b4affd607d update WHATS_NEW and WHATS_NEW_DM to include snapshot-merge changes 2010-01-13 21:48:39 +00:00
Alasdair Kergon
af6dd44048 post-release 2010-01-12 14:46:59 +00:00
Alasdair Kergon
d30ec9fd1e pre-release 2010-01-12 14:39:07 +00:00
Alasdair Kergon
627409ec38 Revert so-called "redundant" log until after next release. 2010-01-12 14:00:51 +00:00
Alasdair Kergon
4ead572462 . 2010-01-11 21:44:36 +00:00
Alasdair Kergon
42783a54db Add missing items to WHATS_NEW files.
Continue to use 'field' to describe reporting elements.
2010-01-11 21:28:04 +00:00
Peter Rajnoha
a8ed16de33 Define {DM, LVM}_UDEV_DISABLE_CHECKING=1 env. variables for tests.
We need to disable udev checking for our tests since they use their own
location for device nodes and symlinks.
2010-01-11 15:48:49 +00:00
Peter Rajnoha
ee0a4914d5 Enable udev_sync and udev_rules in lvm.conf by default while running tests. 2010-01-11 15:43:19 +00:00
Peter Rajnoha
8e7c6b60fb Add support to disable udev checking: DM_UDEV_DISABLE_CHECKING=1 env. variable.
Sometimes it is really needed to switch off udev checking and the warnings we show when
we detect that udev has not done its job right - the messages like "Udev should have done
this and that. Falling back to direct node creation/removal. " etc.

This would be especially handy while setting DM_DEV_DIR env var that could be set to a
different location than standard /dev (udev can't create nodes/symlinks out of that one
directory that is configured into udevd). The exact same situation happens while we're
running our tests.
2010-01-11 15:36:24 +00:00
Peter Rajnoha
e829c626da Add activation/udev_rules config option in lvm.conf.
Add dm_tree_add_dev_with_udev_flags to provide wider support for udev flags.
2010-01-07 19:54:21 +00:00
Peter Rajnoha
837adeea7f Add --noudevrules option for dmsetup to disable /dev node management by udev. 2010-01-07 19:45:12 +00:00
zkabelac
9fea2798e3 Show all fields for 'dmsetup info -c -o all'. 2010-01-07 14:30:47 +00:00
Mike Snitzer
f84d2eeec9 update WHATS_NEW and WHATS_NEW_DM with previous commits' changes 2010-01-05 21:32:59 +00:00
zkabelac
0331a34d58 Fix unlocking vg in some pvresize and toollib error paths. 2009-12-11 13:11:56 +00:00
Peter Rajnoha
7ab8b44b6c Disable udev rules on change event with DISK_RO=1.
There's a new change udev event generated since kernel 2.6.32 that
notifies userspace about a change in read-only attribute for block
devices (with DISK_RO=1 environment variable set).

We need to detect this and disable the rule application so the
meaning of this change event is not interchanged with the regular
change event used while resuming/renaming DM devices.

If there's anybody awaiting this notification in foreign rules,
he can still check for this env var and do the appropriate actions
separately.
2009-12-07 12:03:47 +00:00
Alasdair Kergon
0c0e1fbbeb Post-release.
Fingers crossed this one's more successful that the last one!
2009-11-24 19:04:23 +00:00
Alasdair Kergon
e400f6eab9 pre-release 2009-11-24 18:26:08 +00:00
Alasdair Kergon
58a8b00086 post-release 2009-11-19 19:53:58 +00:00
Alasdair Kergon
50a27398b0 . 2009-11-19 19:42:57 +00:00
Alasdair Kergon
eab7cba1f3 pre-release 2009-11-19 19:00:34 +00:00
Milan Broz
cdc905cc16 Fix install_device-mapper Makefile target to not build dmeventd plugins. 2009-11-13 12:48:01 +00:00
Peter Rajnoha
88b0c82a0d Support udev flags even when udev_sync is disabled or not compiled in.
This provides better support for environments where udev rules are installed
but udev_sync is not compiled in (however, using udev_sync is highly
recommended). It also provides consistent and expected functionality even
when '--noudevsync' option is used.

There is still requirement for kernel >= 2.6.31 for the flags to work though
(it uses DM cookies to pass the flags into the kernel and set them in udev
event environment that we can read in udev rules).
2009-11-13 12:43:21 +00:00
Peter Rajnoha
01d3349587 Remove 'last_rule' from udev rules.
'last_rule' option has been removed from udev (version >= 147).

From now on, we require foreign rules to check and honor
ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG} instead. Foreign
rules should be skipped totally when this flag is set.
2009-11-13 12:33:27 +00:00
Alasdair Kergon
21ed352ac5 Add support for querying a device's inactive table.
Currently this data is invisible to userspace.
Requires dm >= 4.16 (likely to be in linux 2.6.33).
2009-11-06 00:43:08 +00:00
Alasdair Kergon
44e1f095d1 Tidy some uses of arg_count and introduce arg_is_set. 2009-11-03 15:50:42 +00:00
Alasdair Kergon
b74e5b870c post-release 2009-10-27 01:13:20 +00:00
Alasdair Kergon
bcb021296f . 2009-10-27 00:52:45 +00:00
Alasdair Kergon
972b11e39e pre-release 2009-10-26 21:56:23 +00:00