| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just like MD filtering that detects components of software RAID (md),
add detection for firmware RAID.
We're not adding any native code to detect this - there are lots of
firmware RAIDs out there which is just out of LVM scope. However,
with current changes with which we're able to get auxiliary device
status from external sources (e.g. auxiliary_device_status_source="udev"),
we can do this easily if the external device status source has this
kind of information - which is the case of "udev" source where the
results of blkid scans are stored.
This detection should cover all firmware RAIDs that blkid can detect and
which are identified as:
ID_FS_TYPE = {adaptec,ddf,hpt45x,hpt37x,isw,jmicron,lsi_mega,nvidia,promise_fasttrack,silicon_medley,via}_raid_member
|
|
|
|
|
|
|
|
|
|
|
|
| |
Partitioned devices are marked in udev db as:
ID_PART_TABLE="<partition table type name>"
and at the same time they are *not* marked with:
ID_PART_ENTRY_DISK="<parent disk major:minor>"
Where partition table type name is dos/gpt/... But checking the presence
of this variable is enough for LVM here - it just needs to know whether
there's a partition table or not, not interested in the actual type.
The same applies for parent disk major:minor.
|
|
|
|
|
|
|
|
|
| |
mpath components are marked in udev db as:
ID_FS_TYPE="mpath_member"
or
DM_MULTIPATH_DEVICE_PATH="1"
(it depends on udev rule/blkid version used for handling mpath)
|
|
|
|
|
| |
MD components are marked in udev db as:
ID_FS_TYPE="linux_raid_member"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and "udev" source
Make it possible to select the source of information to use for further
device identification. The original functionality where LVM code is
used directly to acquire this additional device information is now
called "native" auxiliary device status source.
The new one - "udev" auxiliary device status source tries to reuse
existing udev database records to reuse some of the information stored
there.
Using 'udev' source can speed up LVM processing as LVM doesn't need to
do scanning and device processing again which is already done in udev
and therefore we have this information for 'free'. This mostly applies
to information that is gathered via blkid call within udev rules and
it's stored in udev db. This helps acquiring device information like
device being part of MD, multipath, device being partitioned or whether
device contains a filesystem label etc.
As for the implementation, the "auxiliary_device_status_source" is a global
property and it's applied for all devices under this setting. The
'struct device' now contains additional 'struct dev_aux_status' field that
identifies the auxiliary source of device status and contains pointer to
additional data provided by that source. In case of 'udev' source, this
is 'struct udev_device' as provided by libudev library which can be
used further to acquire more information by calling libudev functions
with this 'struct udev_device' handle.
The same logic would apply for any other new auxiliary device status
source (or even their combinations) that we can add later in the
future (e.g. use of libblkid to do the scanning instead of LVM native
code).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Free (and clear) h.protocol string on daemon_open() error paths
so it's OK for caller to skip calling daemon_close() if returned
h.socket_fd is -1.
Close h.socket_fd in daemon_close() to avoid possible leak.
https://bugzilla.redhat.com/1164234
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Commit b0dde9e8f026ddd679 introduced regression in parsing
/dev/mapper prefix - and tried to check for '/' one char behind.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The call to dm_config_destroy can derefence result->mem
while result is still NULL:
struct dm_config_tree *get_cachepolicy_params(struct cmd_context *cmd)
{
...
int ok = 0;
...
if (!(result = dm_config_flatten(current)))
goto_out;
...
ok = 1;
out:
if (!ok) {
dm_config_destroy(result)
...
}
...
}
|
|
|
|
|
|
|
| |
Just call return 0 directly on error path, without using
"goto" - the code is short, no need to use it this way
(the dead code appeared as part of further changes in this
function).
|
|
|
|
|
|
|
| |
When Makefile.in is touched, it's been matched by 'man' rule
and it's been wrongly regnerated.
Put in explicit rules to avoid Makefile sed processing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When chunk size needs to be estimated, the code missed to round
to proper 64kb boundaries (or power of 2 for older thin pool driver).
So for some data and metadata size (i.e. 10GB and 4MB) it resulted
in incorrect chunk size (not being a multiple of 64KB)
Fix it by adding proper rounding and also use 1 routine for 2 places
where the same calculation is made.
Fix also incorrect printed warning that has used 'ffs()'
(which returns first 'least significant' bit in word)
and it was not really giving any useful size info and replace it
with properly estimated chunk size.
|
|
|
|
| |
variable to be ignored
|
|
|
|
| |
result size
|
| |
|
| |
|
|
|
|
|
| |
Support for pooldatasize is not yet finished, so keep it commented out
for now.
|
|
|
|
|
| |
Improve lvconvert.
Put ENV section downward in lvm.8.
|
|
|
|
|
| |
Cleaner needs prefix to do its jobs and clean any left VG from python
test as well.
|
|
|
|
|
| |
Detect same LV names for lvconvert prior opening VG.
i.e. lvconvert --thinpool vg/lvol0 -T lvol0
|
|
|
|
|
| |
Properly generate man page for systemd generators on make.
Simplified install_clusters
|
|
|
|
|
|
|
| |
Items[0] holds only counter in .len.
So don't zero already zeroed items[0].len assigned above.
(finishing fc935495c813b7577ac8237459a2cc65ea291ac2)
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
New code misses error path check.
|
|
|
|
| |
Don't shadow stdio.h declaration.
|
|
|
|
|
|
| |
When _alloc_selection_node() fails, rh should be destroyed.
Use 'bad:' label since we have goto_bad with stack embeded.
|
|
|
|
|
| |
When same name is given for converted volume and pool volume,
stop further command processing.
|
| |
|
|
|
|
| |
Don't use thin with its thin requirements for the test.
|
|
|
|
|
|
|
| |
Don't write behind the allocated array when list is empty.
Use index 0 for the allocated element.
Error triggered by i.e.: lvs -a -o all,lv_modules
|
|
|
|
|
|
|
|
|
|
| |
Use lvm2 standard TARGETS.
Make liblvm_python.c as intermediate target (gets deleted after use)
Properly delete build dir on make distclean.
Mark install_python_bindings as .PHONY.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix regression introduced with a2c1024f6ac7e22ac5c010a267d0c1df331ee416
_setup_task(mknodes ? name : NULL...
has been replaced with:
_setup_task(type != MKNODES ? name : NULL....
Use '=='
|
|
|
|
|
|
|
|
|
|
|
| |
Commit d2c116058e72d365802eb5641be60a615daacb96 introduced regression
with CLVMD_PATH.
+ CLVMD_PATH="$clvmd_prefix/sbin/clvmd"
test "$prefix" != NONE && clvmd_prefix=$prefix
It has set CLVMD_PATH before clvmd_prefix got its final value.
Move it one line below.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|