]> sourceware.org Git - lvm2.git/log
lvm2.git
6 years agocleanup: enhance messages
Zdenek Kabelac [Thu, 11 Jan 2018 09:46:04 +0000 (10:46 +0100)]
cleanup: enhance messages

Add extra info about failing local exlusive activation
(as in cluster the LV can be active on some other nodes).

6 years agoactivation: guard exclusive activation
Zdenek Kabelac [Mon, 15 Jan 2018 15:26:00 +0000 (16:26 +0100)]
activation: guard exclusive activation

Add protectional internall error whenever we spot activation
of 'exclusive' only segments in 'non-exclusive' mode.

TODO: possibly the activation locking could be enhanced to handle
this fully behind the scene - as for now this works purely for
lvchange/vgchange activation.

6 years agodmeventd: add check for result code
Zdenek Kabelac [Fri, 5 Jan 2018 20:08:24 +0000 (21:08 +0100)]
dmeventd: add check for result code

Check result from pthread_kill.

6 years agopvmove: drop misleading pvmove restriction for cluster
Zdenek Kabelac [Thu, 11 Jan 2018 15:15:16 +0000 (16:15 +0100)]
pvmove: drop misleading pvmove restriction for cluster

pvmove handles properly locked LVs in cluster and this extra check
actually cause misbehavior as some LVs were silently skipped from
operation scope.

6 years agopvmove: better check for exclusive LV
Zdenek Kabelac [Fri, 12 Jan 2018 14:59:07 +0000 (15:59 +0100)]
pvmove: better check for exclusive LV

6 years agopvmove: fix _remove_sibling_pvs_from_trim_list
Zdenek Kabelac [Thu, 11 Jan 2018 12:21:08 +0000 (13:21 +0100)]
pvmove: fix _remove_sibling_pvs_from_trim_list

Fix the function to really check it sibling raid image LV.
For LV_rmeta_0  check for   LV_rimage_0   instead of
LV_rmeta_0rimage_0.

6 years agolvconvert: use excl activation for conversion
Zdenek Kabelac [Fri, 12 Jan 2018 12:34:13 +0000 (13:34 +0100)]
lvconvert: use excl activation for conversion

Use properly exclusive activation when reactivating origin after
snapshot merge (since origin must have been previously also exlusively
activated).

Same applies when converting volumes to thin-pool or cache.

Previously used 'only' local activation incorrectly allowed local
activation of some targets (i.e. raid) - thus 'leaking' chance to
activate same device on another node - which can be a problem
for device types like raid.

6 years agodevice: Move buffer allocation nearer to the I/O.
Alasdair G Kergon [Tue, 16 Jan 2018 01:12:08 +0000 (01:12 +0000)]
device: Move buffer allocation nearer to the I/O.

Don't allocate memory until it's needed - later we'll add
some of the I/O to an internal queue instead of issuing it
immediately.

6 years agodevice: Merge _dev_read and dev_read_callback.
Alasdair G Kergon [Tue, 16 Jan 2018 00:41:42 +0000 (00:41 +0000)]
device: Merge _dev_read and dev_read_callback.

6 years agoformat_text: Refactor mda counting in label processing.
Alasdair G Kergon [Mon, 15 Jan 2018 20:43:51 +0000 (20:43 +0000)]
format_text: Refactor mda counting in label processing.

6 years agoformat_text: Change update_mda_baton to use label not labeller
Alasdair G Kergon [Mon, 15 Jan 2018 20:13:53 +0000 (20:13 +0000)]
format_text: Change update_mda_baton to use label not labeller

6 years agodevice: Rearrange _aligned_io().
Alasdair G Kergon [Mon, 15 Jan 2018 19:59:28 +0000 (19:59 +0000)]
device: Rearrange _aligned_io().

6 years agodevice: Add reason to devbuf.
Alasdair G Kergon [Mon, 15 Jan 2018 19:38:18 +0000 (19:38 +0000)]
device: Add reason to devbuf.

6 years agodevice: Store offset to data instead of pointer.
Alasdair G Kergon [Mon, 15 Jan 2018 19:32:59 +0000 (19:32 +0000)]
device: Store offset to data instead of pointer.

We want to save the relative offset before we've allocated the
buffer's memory.

6 years agodevice: Reorder device.h before change.
Alasdair G Kergon [Mon, 15 Jan 2018 19:24:01 +0000 (19:24 +0000)]
device: Reorder device.h before change.

6 years agocommand: Skip some memory zeroing.
Alasdair G Kergon [Sat, 13 Jan 2018 03:36:53 +0000 (03:36 +0000)]
command: Skip some memory zeroing.

commands[] is in bss, its content wouldn't change if reinitialised
and unregister has no memory to free so don't bother.

6 years agolibdm: Fix a size_t in _dm_malloc_aligned_aux message.
Alasdair G Kergon [Thu, 11 Jan 2018 22:19:41 +0000 (22:19 +0000)]
libdm: Fix a size_t in _dm_malloc_aligned_aux message.

6 years agoman: regenerate
Alasdair G Kergon [Fri, 12 Jan 2018 00:30:52 +0000 (00:30 +0000)]
man: regenerate

6 years agolabel: Clean up storing of device and label sector.
Alasdair G Kergon [Thu, 11 Jan 2018 02:39:30 +0000 (02:39 +0000)]
label: Clean up storing of device and label sector.

No longer use the external 'result' pointer internally to set up the
cached label.  The callback _set_label_read_result() is now given the
internal label pointer directly

Callers that don't need the result are no longer required to pass a
label pointer into label_read().

6 years agoconfig: Move use_mmap to local variable.
Alasdair G Kergon [Wed, 10 Jan 2018 20:35:02 +0000 (20:35 +0000)]
config: Move use_mmap to local variable.

6 years agodevice: Mark read-only device buffers const.
Alasdair G Kergon [Wed, 10 Jan 2018 19:50:53 +0000 (19:50 +0000)]
device: Mark read-only device buffers const.

6 years agodevice: Eliminate unnecessary buffer from dev_read.
Alasdair G Kergon [Wed, 10 Jan 2018 18:48:01 +0000 (18:48 +0000)]
device: Eliminate unnecessary buffer from dev_read.

6 years agodevice: Suppress repeated reads of the same data.
Alasdair G Kergon [Wed, 10 Jan 2018 13:19:12 +0000 (13:19 +0000)]
device: Suppress repeated reads of the same data.

If the data being requested is present in last_[extra_]devbuf,
return that directly instead of reading it from disk again.

Typical LVM2 access patterns request data within two adjacent 4k blocks
so we eliminate some read() system calls by always reading at least 8k.

6 years agodevice: Remove some data copying between buffers.
Alasdair G Kergon [Wed, 10 Jan 2018 13:18:56 +0000 (13:18 +0000)]
device: Remove some data copying between buffers.

Callers that read larger amounts of data now get a pointer to read-only
data directly without copying it through an intermediate buffer.  This
data is owned by the device layer so the callers no longer free it.

6 years agodevice: Free cached device bufs when metadata invalid or dev closed.
Alasdair G Kergon [Wed, 10 Jan 2018 12:03:31 +0000 (12:03 +0000)]
device: Free cached device bufs when metadata invalid or dev closed.

6 years agodevice: Keep the last data buffer read off each device.
Alasdair G Kergon [Wed, 10 Jan 2018 02:09:06 +0000 (02:09 +0000)]
device: Keep the last data buffer read off each device.

If there's a second metadata area on device, we record that separately.

Note that the memory requirements aren't restricted yet.

6 years agoallocation: Avoid exceeding array bounds in allocation tag code
Alasdair G Kergon [Wed, 10 Jan 2018 02:03:32 +0000 (02:03 +0000)]
allocation: Avoid exceeding array bounds in allocation tag code

If _limit_to_one_area_per_tag() changes nothing it writes beyond
the array.

6 years agoformat_text: Use malloc aligned for export buffer
Alasdair G Kergon [Tue, 9 Jan 2018 21:52:19 +0000 (21:52 +0000)]
format_text: Use malloc aligned for export buffer

6 years agolabel: Rename a variable
Alasdair G Kergon [Tue, 9 Jan 2018 21:13:46 +0000 (21:13 +0000)]
label: Rename a variable

6 years agolibdm: Introduce dm_malloc_aligned
Alasdair G Kergon [Tue, 9 Jan 2018 20:25:43 +0000 (20:25 +0000)]
libdm: Introduce dm_malloc_aligned

6 years agoman lvmlockd: remove lv resizing comment
David Teigland [Wed, 10 Jan 2018 15:15:52 +0000 (09:15 -0600)]
man lvmlockd: remove lv resizing comment

6 years agolvmlockd: print warning when skipping locking
David Teigland [Tue, 9 Jan 2018 17:46:00 +0000 (11:46 -0600)]
lvmlockd: print warning when skipping locking

6 years agolvmlockd: add lockopt values for skipping selected locks
David Teigland [Tue, 9 Jan 2018 17:18:57 +0000 (11:18 -0600)]
lvmlockd: add lockopt values for skipping selected locks

and add lockopt to common options.

6 years agoformat_text: Use vgsummary callbacks
Alasdair G Kergon [Tue, 9 Jan 2018 01:50:23 +0000 (01:50 +0000)]
format_text: Use vgsummary callbacks

6 years agolabel: Add label_read callback.
Alasdair G Kergon [Mon, 8 Jan 2018 23:08:22 +0000 (23:08 +0000)]
label: Add label_read callback.

6 years agolabel: Add callback fns (partially)
Alasdair G Kergon [Sun, 7 Jan 2018 03:43:25 +0000 (03:43 +0000)]
label: Add callback fns (partially)

6 years agodevice: Introduce dev_read_callback
Alasdair G Kergon [Sat, 6 Jan 2018 00:33:09 +0000 (00:33 +0000)]
device: Introduce dev_read_callback

If it obtains the data, it passes it into the supplied callback function
and returns 1.  Otherwise the callback receives failed = 1.

Updated config_file_read_fd to use this and similarly return the data
via a callback fn of its own.

6 years agometadata: Use a consistent format for callback fn parameters
Alasdair G Kergon [Fri, 5 Jan 2018 14:24:10 +0000 (14:24 +0000)]
metadata: Use a consistent format for callback fn parameters

6 years agometadata: Change the new data processing fns to void.
Alasdair G Kergon [Fri, 5 Jan 2018 02:31:28 +0000 (02:31 +0000)]
metadata: Change the new data processing fns to void.

Move the existing fn return codes into the new structs.

6 years agoformat_text: Split vgname_from_mda into three pieces.
Alasdair G Kergon [Thu, 4 Jan 2018 21:13:44 +0000 (21:13 +0000)]
format_text: Split vgname_from_mda into three pieces.

6 years agoformat_text: Split out raw_read_mda_header processing
Alasdair G Kergon [Thu, 4 Jan 2018 15:52:59 +0000 (15:52 +0000)]
format_text: Split out raw_read_mda_header processing

6 years agoformat_text: Split up _update_mda.
Alasdair G Kergon [Thu, 4 Jan 2018 00:56:34 +0000 (00:56 +0000)]
format_text: Split up _update_mda.

Dedicated functions are now used to process each piece of data obtained,
so the refactoring in this file gives us one for the vgsummary and one
for the metadata header.  This new type of function takes two parameters
(for now), the obtained data plus a single struct (that must not
reference any data on the stack) that wraps up the entire context needed
to process it.

6 years agoformat_text: Allocate update_mda baton from mempool.
Alasdair G Kergon [Wed, 3 Jan 2018 23:53:00 +0000 (23:53 +0000)]
format_text: Allocate update_mda baton from mempool.

Also store return code.  Note that fatal and non-fatal errors while
handling the mda aren't currently distinguished.

6 years agoformat_text: Split the text import fns into two pieces.
Alasdair G Kergon [Wed, 3 Jan 2018 16:00:52 +0000 (16:00 +0000)]
format_text: Split the text import fns into two pieces.

6 years agotoolcontext: Add paired label_init to refresh_toolcontext.
Alasdair G Kergon [Tue, 2 Jan 2018 22:00:31 +0000 (22:00 +0000)]
toolcontext: Add paired label_init to refresh_toolcontext.

label_init() and label_exit() should be paired.

6 years agoconfig: Split config buffer processing into new fn.
Alasdair G Kergon [Tue, 2 Jan 2018 20:40:18 +0000 (20:40 +0000)]
config: Split config buffer processing into new fn.

Wrap its parameters into struct process_config_file_params allocated
from a mempool now passed into the config_file_read* fns.

6 years agoman lvmlockd: update wording
David Teigland [Tue, 2 Jan 2018 19:10:34 +0000 (13:10 -0600)]
man lvmlockd: update wording

6 years agolabel: Wrap _find_labeller params into a struct.
Alasdair G Kergon [Tue, 2 Jan 2018 16:01:10 +0000 (16:01 +0000)]
label: Wrap _find_labeller params into a struct.

Move the actual buffer reading up to _label_read() so _find_labeller()
just examines the buffer supplied.

6 years agolabel: Move _set_label_read_result call into _find_labeller.
Alasdair G Kergon [Tue, 2 Jan 2018 14:58:21 +0000 (14:58 +0000)]
label: Move _set_label_read_result call into _find_labeller.

Move responsibility for setting the label_read() result parameter down
into _find_labeller().

6 years agolabel: Move setting result of label_read into separate fn.
Alasdair G Kergon [Tue, 2 Jan 2018 14:19:20 +0000 (14:19 +0000)]
label: Move setting result of label_read into separate fn.

6 years agolabel: Add mempool.
Alasdair G Kergon [Tue, 2 Jan 2018 13:37:12 +0000 (13:37 +0000)]
label: Add mempool.

6 years agotests: sleep first
Zdenek Kabelac [Wed, 13 Dec 2017 15:17:56 +0000 (16:17 +0100)]
tests: sleep first

Sleep a bit before checking /sys/block dir so the kernel has a moment to
actually put scsi debug device in it...

Some quite old kernels are in troubles with this plain searching grep
without sleep (namely 2.6.32)

modprobe scsi_debug
 <sleep .1>
grep -H scsi_debug /sys/block/*/device/model
modprobe -r scsi_debug

6 years agolvm-string: add function to detect component LV suffix
Zdenek Kabelac [Mon, 11 Dec 2017 17:12:47 +0000 (18:12 +0100)]
lvm-string: add function to detect component LV suffix

Add is_component_lvname() function to recognize component LV name.

6 years agodevice: Move dev_read memory allocation into device layer.
Alasdair G Kergon [Tue, 19 Dec 2017 01:12:18 +0000 (01:12 +0000)]
device: Move dev_read memory allocation into device layer.

Rename dev_read() to dev_read_buf() - the function that reads data
into a supplied buffer.

Introduce a new dev_read() that allocates the buffer it returns and
switch the important users over to this.  No caller may change the
returned data.  (For now, callers are responsible for freeing it after
use, but later the device layer will take full ownership.)

dev_read_buf() should only be used for tiny buffers or unimportant code
(such as the old disk formats).

6 years agolvmlockd: clear coverity complaint
David Teigland [Mon, 18 Dec 2017 21:19:17 +0000 (15:19 -0600)]
lvmlockd: clear coverity complaint

from previous coverity fix, it's never happy.

6 years agopost-release
Alasdair G Kergon [Mon, 18 Dec 2017 20:43:09 +0000 (20:43 +0000)]
post-release

6 years agopre-release v2_02_177
Alasdair G Kergon [Mon, 18 Dec 2017 20:36:10 +0000 (20:36 +0000)]
pre-release

6 years agoformat_text: Transfer circular buf alloc to device layer.
Alasdair G Kergon [Fri, 15 Dec 2017 22:34:26 +0000 (22:34 +0000)]
format_text: Transfer circular buf alloc to device layer.

Instead of the caller passing dev_read_circular() a buffer to fill with
data, the device layer itself now allocates it.

6 years agoformat_text: Separate out code paths for buffer wraparound
Alasdair G Kergon [Fri, 15 Dec 2017 21:12:19 +0000 (21:12 +0000)]
format_text: Separate out code paths for buffer wraparound

The creation of wrapped around metadata - where the start of metadata is
written up to the end of the buffer and the remainder follows back at
the start of the buffer - is now restricted to cases where writing the
metadata in one piece wouldn't fit.  This shouldn't happen in 'normal'
usage so let's begin treating the code for this as a special case that
can be ignored when optimising 'normal' cases.

6 years agoformat_text: Supply mempool directly to raw_read_mda_header.
Alasdair G Kergon [Fri, 15 Dec 2017 14:57:05 +0000 (14:57 +0000)]
format_text: Supply mempool directly to raw_read_mda_header.

6 years agolvm2app: Suppress deprecation warnings for our builds
Marian Csontos [Thu, 14 Dec 2017 12:49:33 +0000 (13:49 +0100)]
lvm2app: Suppress deprecation warnings for our builds

6 years agolvmdbusd: Make lvmdbusd executable
Marian Csontos [Thu, 14 Dec 2017 12:40:05 +0000 (13:40 +0100)]
lvmdbusd: Make lvmdbusd executable

- Add files built from *.in to builddir files.
- Add all files built from *.in to DISTCLEAN_TARGETS.

6 years agodocs: Add TESTING file
Marian Csontos [Thu, 14 Dec 2017 14:42:34 +0000 (15:42 +0100)]
docs: Add TESTING file

6 years agotest: fix trap adding proper teardown to previous, new raid tests
Heinz Mauelshagen [Wed, 13 Dec 2017 13:39:06 +0000 (14:39 +0100)]
test: fix trap adding proper teardown to previous, new raid tests

Also remove superfluous variable.

6 years agotest: new raid tests
Heinz Mauelshagen [Wed, 13 Dec 2017 01:55:06 +0000 (02:55 +0100)]
test: new raid tests

Add three new raid tests with io load and table
reloads during reshape for target 1.13.2.

Add a raid0 to raid10 conversion test.

Also add more signals to trap in lvconvert-raid-reshape-load.sh.

6 years agoformat_text: Round size written up to multiple of 4096.
Alasdair G Kergon [Tue, 12 Dec 2017 22:52:22 +0000 (22:52 +0000)]
format_text: Round size written up to multiple of 4096.

Zero-fill metadata up to the next 4096 boundary then write out a
multiple of 4096 bytes to avoid triggering a read-modify-write.

6 years agoformat_text: Change metadata alignment from 512 to 4096.
Alasdair G Kergon [Tue, 12 Dec 2017 20:57:36 +0000 (20:57 +0000)]
format_text: Change metadata alignment from 512 to 4096.

If there is sufficient space in the metadata area, align the next
metadata to a disk offset that is a multiple of 4096 bytes and
don't write it circularly.  If it doesn't all fit at the end
of the metadata area, go back to the start and write it all there
contiguously.

If there is insufficient space to use the new stricter rules, revert to
the original behaviour, aligning on 512-byte boundaries wrapping around
the circular buffer as required.

6 years agoformat_text: More refactoring of metadata offset calcs
Alasdair G Kergon [Tue, 12 Dec 2017 18:46:25 +0000 (18:46 +0000)]
format_text: More refactoring of metadata offset calcs

6 years agoformat_text: Refactor and document metadata offset calculation.
Alasdair G Kergon [Tue, 12 Dec 2017 18:36:54 +0000 (18:36 +0000)]
format_text: Refactor and document metadata offset calculation.

6 years agodevice: Fix an unpaired device close.
Alasdair G Kergon [Tue, 12 Dec 2017 17:56:58 +0000 (17:56 +0000)]
device: Fix an unpaired device close.

dev_open_flags contains an unpaired dev_close_immediate so increment
open_count before calling it.

6 years agometadata: Consistently skip metadata areas that failed.
Alasdair G Kergon [Tue, 12 Dec 2017 17:49:35 +0000 (17:49 +0000)]
metadata: Consistently skip metadata areas that failed.

Even after writing some metadata encountered problems, some commands
continue (rightly or wrongly) and attempt to make further changes.

Once an mda is marked MDA_FAILED, don't try to use it again.
This also applies when reverting, where one loop already skips
failed mdas but the other doesn't.

This fixes some device open_count warnings on relevant failure paths.

6 years agotest: Fix condition when detecting lvmdbusd
Marian Csontos [Tue, 12 Dec 2017 13:18:27 +0000 (14:18 +0100)]
test: Fix condition when detecting lvmdbusd

6 years agodevice: Internal error if writing 0 bytes to dev.
Alasdair G Kergon [Tue, 12 Dec 2017 12:57:25 +0000 (12:57 +0000)]
device: Internal error if writing 0 bytes to dev.

6 years agolvmdbusd: All tools use detected python3
Marian Csontos [Tue, 12 Dec 2017 12:10:51 +0000 (13:10 +0100)]
lvmdbusd: All tools use detected python3

- lvmdb.py and lvm_shell_proxy.py can be used as standalone tools, so
  should use detected value.
- clean executable bit on *.in files.

6 years agotest: lvmdbusd is used for process name
Marian Csontos [Tue, 12 Dec 2017 11:14:15 +0000 (12:14 +0100)]
test: lvmdbusd is used for process name

lvmdbusd was started, but the process was not recognized by pgrep.

- configure does not make the script executable - set the flag
  explicitly when running make check,
- process name changed to lvmdbusd. The previous python3 value
  originated from the use of /usr/bin/env.

6 years agoformat_text: Adjust metadata alignment calculation.
Alasdair G Kergon [Mon, 11 Dec 2017 20:25:03 +0000 (20:25 +0000)]
format_text: Adjust metadata alignment calculation.

Use new ALIGN_ABSOLUTE macro when calculating the start location
of new metadata and adjust the end of buffer detection so that
there is no longer an imposed gap between old and new metadata.

6 years agoformat_text: Use absolute alignment to calculate metadata usage
Alasdair G Kergon [Mon, 11 Dec 2017 17:14:38 +0000 (17:14 +0000)]
format_text: Use absolute alignment to calculate metadata usage

Currently both start and offset should always be divisible by alignment,
so this should have no effect, but a later patch will increase alignment
so these variables can no longer be optimised out.

6 years agoformat_text: Move metadata size checking into separate fn.
Alasdair G Kergon [Mon, 11 Dec 2017 17:08:29 +0000 (17:08 +0000)]
format_text: Move metadata size checking into separate fn.

Move checks into _metadata_fits_into_buffer() and add macro for alignment.

6 years agoformat_text: Log additional circular buffer information.
Alasdair G Kergon [Mon, 11 Dec 2017 15:59:40 +0000 (15:59 +0000)]
format_text: Log additional circular buffer information.

6 years agoformat_text: Replace PRI with FMT.
Alasdair G Kergon [Mon, 11 Dec 2017 15:32:53 +0000 (15:32 +0000)]
format_text: Replace PRI with FMT.

6 years agoconfigure: Fix deprecation warning for lvmapp
Marian Csontos [Mon, 11 Dec 2017 14:20:48 +0000 (15:20 +0100)]
configure: Fix deprecation warning for lvmapp

* and properly regenerate configure script

6 years agolvmdbusd: Fix path to python3
Marian Csontos [Mon, 11 Dec 2017 11:36:54 +0000 (12:36 +0100)]
lvmdbusd: Fix path to python3

lvmdbusd executable script must use python3 interpreter detected by
configure script, as site-packages directory used for library is only
used by that interpreter.

6 years agoconfigure: applib is not required by dbusd
Marian Csontos [Mon, 11 Dec 2017 11:12:42 +0000 (12:12 +0100)]
configure: applib is not required by dbusd

6 years agocleanup: debug message
Zdenek Kabelac [Fri, 8 Dec 2017 12:17:15 +0000 (13:17 +0100)]
cleanup: debug message

6 years agocleanup: switch to standard query
Zdenek Kabelac [Fri, 8 Dec 2017 12:15:21 +0000 (13:15 +0100)]
cleanup: switch to standard query

In /tools part we should mostly use standard functions
lv_is_active*  unless there is good reason to not use it.

6 years agothin: regression fix for metadata checking
Zdenek Kabelac [Fri, 8 Dec 2017 12:09:45 +0000 (13:09 +0100)]
thin: regression fix for metadata checking

Fix regression from commit f173274fe4888cc73eb573cf2c6913f54641c1aa
and restore support for 'disabled' checking via lvm.conf.

6 years agoactivation: keep priority till memlock_unlock
Zdenek Kabelac [Fri, 8 Dec 2017 12:11:35 +0000 (13:11 +0100)]
activation: keep priority till memlock_unlock

Although it doesn't look like it can be a measurable problem
and costs some time to flip priorities outside of activation window.

So just like with memory locking preserve priority until call
memlock_unlock() appears.

(addition to commit c086dfadc389551b9a2d7b4c26931e5e74ada8d6).

6 years agovgchange: drop extra counting
Zdenek Kabelac [Fri, 8 Dec 2017 12:17:34 +0000 (13:17 +0100)]
vgchange: drop extra counting

As the loop for background polling _poll_lvs_in_vg checks for active LVs,
avoid doing unnecessary extra check before.

6 years agoformat_text: Use explicit alignment in wrapping calc.
Alasdair G Kergon [Fri, 8 Dec 2017 01:11:34 +0000 (01:11 +0000)]
format_text: Use explicit alignment in wrapping calc.

Expand out the metadata wrapping calculations to prepare
to support a larger alignment.

The current alignment is 512 bytes so
(mdac_area_start + rlocn->offset) % alignment is zero.

6 years agodebug: update debug msg
Zdenek Kabelac [Thu, 7 Dec 2017 16:54:41 +0000 (17:54 +0100)]
debug: update debug msg

Use _node_name.

6 years agocleanup: use log_warn
Zdenek Kabelac [Thu, 7 Dec 2017 09:42:30 +0000 (10:42 +0100)]
cleanup: use log_warn

6 years agocleanup: reorder calling of pool checking tools
Zdenek Kabelac [Thu, 7 Dec 2017 16:49:15 +0000 (17:49 +0100)]
cleanup: reorder calling of pool checking tools

Test for zero header before even starting to create argument list for
execution of thin/cache_check tool.

6 years agolibdm: drop extra structure copy
Zdenek Kabelac [Thu, 7 Dec 2017 16:47:06 +0000 (17:47 +0100)]
libdm: drop extra structure copy

When doing resume, directly pass location where new updated info
needs to be stored.

_resume_node() ensures the info is ONLY updated when the function
is successful and never changes it on error path.

6 years agolibdm: use delay_resume_if_extended
Zdenek Kabelac [Thu, 7 Dec 2017 19:28:03 +0000 (20:28 +0100)]
libdm: use delay_resume_if_extended

Update the logic towards more explicit logic.

Preload tree normally does not want to resume, only
in certain cases of extension or new loaded nodes can be
resumed. So introduce new internal variable delay_resume_if_extended
controlable by target.

Patch itself is not changing current existing behaviour,
and rather documents existing problem in more readable way.

lvm2 needs to introduce explicit mechanism how to support more
fain-grained (and safe) logic to i.e. resize thin-pool which
can be sitting on cached raid volume.

6 years agolibdm: avoid checking status on activation
Zdenek Kabelac [Thu, 7 Dec 2017 16:52:01 +0000 (17:52 +0100)]
libdm: avoid checking status on activation

Variable props.send_messages has 3 states and was not used properly
here.  Activation in this moment does not need to verify thin-pool status
as that has been already checked on preload.
So only if there are some real messages (value 2) call function
for sending them.

6 years agolibdm: add help func _get_last_load_segment
Zdenek Kabelac [Wed, 6 Dec 2017 12:23:37 +0000 (13:23 +0100)]
libdm: add help func _get_last_load_segment

Share code for same functionality.

6 years agothin: missing type is error
Zdenek Kabelac [Wed, 6 Dec 2017 12:21:01 +0000 (13:21 +0100)]
thin: missing type is error

6 years agothin: always clear memory before parsing status
Zdenek Kabelac [Wed, 6 Dec 2017 12:24:41 +0000 (13:24 +0100)]
thin: always clear memory before parsing status

Ensure there cannot be 'reused' any data from some previous call.

6 years agolvmetad: drop stray underscore
Alasdair G Kergon [Thu, 7 Dec 2017 16:24:14 +0000 (16:24 +0000)]
lvmetad: drop stray underscore

6 years agodevice: Tag I/O for each mda on a device separately in log messages.
Alasdair G Kergon [Thu, 7 Dec 2017 03:34:59 +0000 (03:34 +0000)]
device: Tag I/O for each mda on a device separately in log messages.

Mark the first metadata area on each text format PV as MDA_PRIMARY.
Pass this information down to the device layer so that when
there are two metadata areas on a block device, we can easily
distinguish two independent streams of I/O.

This page took 0.067591 seconds and 5 git commands to generate.