summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* filters: add firmware RAID filterdev-prajnoha-aux-device-statusPeter Rajnoha2014-12-029-3/+156
| | | | | | | | | | | | | | | | | 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
* filter-partitioned: use new 'udev' device status source to get partition statusPeter Rajnoha2014-12-022-17/+62
| | | | | | | | | | | | 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.
* filter-mpath: use new 'udev' device status source to get mpath component statusPeter Rajnoha2014-12-021-2/+45
| | | | | | | | | 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)
* filter-md: use new 'udev' device status source to get MD component statusPeter Rajnoha2014-12-022-2/+47
| | | | | MD components are marked in udev db as: ID_FS_TYPE="linux_raid_member"
* device: add devices/device_status_source lvm.conf option, recognize "native" ↵Peter Rajnoha2014-12-0210-28/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* post-releaseAlasdair G Kergon2014-11-284-2/+8
|
* pre-releasev2_02_114Alasdair G Kergon2014-11-284-8/+5
|
* libdaemon: Fix some client leaks.Alasdair G Kergon2014-11-284-11/+31
| | | | | | | | | | 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
* Update WHATS_NEW.Petr Rockai2014-11-271-0/+1
|
* lvcreate: Implement --cachepolicy/--cachesettings.Petr Rockai2014-11-273-2/+34
|
* metadata: Add cache_policy to lvcreate_params and honour it.Petr Rockai2014-11-272-0/+12
|
* toollib: Fix uninitialised config value type in get_cachepolicy_params.Petr Rockai2014-11-271-0/+1
|
* toollib: fix regression in parsing /dev/mapper/vg-lvZdenek Kabelac2014-11-263-2/+8
| | | | | Commit b0dde9e8f026ddd679 introduced regression in parsing /dev/mapper prefix - and tried to check for '/' one char behind.
* coverity: remove dead code in lv_info_with_seg_status (continued)Peter Rajnoha2014-11-261-5/+3
|
* coverity: fix possible NULL dereferencePeter Rajnoha2014-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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) ... } ... }
* coverity: remove dead code in lv_info_with_seg_statusPeter Rajnoha2014-11-261-7/+1
| | | | | | | 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).
* makefiles: avoid regeneration of MakefileZdenek Kabelac2014-11-261-0/+3
| | | | | | | 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.
* thin: add missing 64KB roundingZdenek Kabelac2014-11-263-5/+51
| | | | | | | | | | | | | | | 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.
* initscripts: fix typo in clvmd initscript causing CLVMD_STOP_TIMEOUT ↵Peter Rajnoha2014-11-252-1/+2
| | | | variable to be ignored
* pvresize: fix size in 'Resizing to ...' verbose message to show proper ↵Peter Rajnoha2014-11-252-1/+2
| | | | result size
* post-releaseAlasdair G Kergon2014-11-244-2/+8
|
* pre-releasev2_02_113Alasdair G Kergon2014-11-244-7/+7
|
* cache: comment out unsupported pooldatasizeZdenek Kabelac2014-11-243-25/+27
| | | | | Support for pooldatasize is not yet finished, so keep it commented out for now.
* man: updateZdenek Kabelac2014-11-242-38/+38
| | | | | Improve lvconvert. Put ENV section downward in lvm.8.
* tests: use proper LVMTEST prefix for VG nameZdenek Kabelac2014-11-241-1/+1
| | | | | Cleaner needs prefix to do its jobs and clean any left VG from python test as well.
* lvconvert: earlier detection of conflicting namesZdenek Kabelac2014-11-242-2/+27
| | | | | Detect same LV names for lvconvert prior opening VG. i.e. lvconvert --thinpool vg/lvol0 -T lvol0
* man: fix pages for generatorsZdenek Kabelac2014-11-241-8/+4
| | | | | Properly generate man page for systemd generators on make. Simplified install_clusters
* libdm: there is no element in item 0Zdenek Kabelac2014-11-241-2/+0
| | | | | | | Items[0] holds only counter in .len. So don't zero already zeroed items[0].len assigned above. (finishing fc935495c813b7577ac8237459a2cc65ea291ac2)
* report: add some comments about how string list is stored internallyPeter Rajnoha2014-11-241-1/+1
|
* report: add some comments about how string list is stored internallyPeter Rajnoha2014-11-241-0/+15
|
* man/lvchange: Mention --cachepolicy and --cachesettings.Petr Rockai2014-11-241-0/+9
|
* man/lvm.conf: Update to reflect changes in config parser.Petr Rockai2014-11-231-4/+11
|
* Update WHATS_NEW.Petr Rockai2014-11-232-0/+2
|
* cleanup: add missing error path checkZdenek Kabelac2014-11-231-1/+2
| | | | New code misses error path check.
* cleanup: warning: declaration of 'remove' shadows a global declarationZdenek Kabelac2014-11-231-2/+2
| | | | Don't shadow stdio.h declaration.
* libdm: report fix memleak on error pathZdenek Kabelac2014-11-231-4/+4
| | | | | | When _alloc_selection_node() fails, rh should be destroyed. Use 'bad:' label since we have goto_bad with stack embeded.
* pool: prevent pool conversion with same nameZdenek Kabelac2014-11-233-4/+15
| | | | | When same name is given for converted volume and pool volume, stop further command processing.
* tests: reduce thin testZdenek Kabelac2014-11-221-9/+5
|
* tests: use old virt snaps in the testZdenek Kabelac2014-11-223-11/+11
| | | | Don't use thin with its thin requirements for the test.
* libdm: fix reporting of empty string listZdenek Kabelac2014-11-222-2/+3
| | | | | | | 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
* makefiles: standard usage of make.tmplZdenek Kabelac2014-11-221-5/+10
| | | | | | | | | | 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.
* dev_manager: fix mknodesZdenek Kabelac2014-11-222-1/+2
| | | | | | | | | | | | Fix regression introduced with a2c1024f6ac7e22ac5c010a267d0c1df331ee416 _setup_task(mknodes ? name : NULL... has been replaced with: _setup_task(type != MKNODES ? name : NULL.... Use '=='
* configure: fix CLVMD_PATH locationZdenek Kabelac2014-11-223-2/+3
| | | | | | | | | | | 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.
* cleanup: drop unused varsZdenek Kabelac2014-11-202-2/+2
|
* test: Also test repeated --cachesettings in lvchange-cache.Petr Rockai2014-11-201-0/+10
|
* cache: Implement 'default' as a policy settings value to clear the record.Petr Rockai2014-11-202-3/+51
|
* toollib: Split --cachesettings from --cachepolicy.Petr Rockai2014-11-205-32/+36
|
* test: Add a test for lvchange --cachepolicy.Petr Rockai2014-11-201-0/+35
|
* lvchange: Accept --cachepolicy.Petr Rockai2014-11-202-1/+34
|
* toollib: Add --cachepolicy and implement get_cachepolicy_params.Petr Rockai2014-11-203-0/+72
|