]> sourceware.org Git - lvm2.git/log
lvm2.git
7 years agoman-generator: Remove unused variable.
Alasdair G Kergon [Mon, 20 Mar 2017 16:55:30 +0000 (16:55 +0000)]
man-generator: Remove unused variable.

man-generator.c:2976:6: warning: variable "sep" set but not used

7 years agolvmdbusd: Rename ee to got_external_event
Tony Asleson [Mon, 20 Mar 2017 14:43:34 +0000 (09:43 -0500)]
lvmdbusd: Rename ee to got_external_event

This variable is global, make it more descriptive.

7 years agolvmdbusd: Update state during pv move
Tony Asleson [Wed, 15 Mar 2017 19:19:55 +0000 (14:19 -0500)]
lvmdbusd: Update state during pv move

Periodically update the state during pv move so that all the different
dbus objects reflect something close to reality during the process.

7 years agolvmdbusd: Limit state refreshes for udev events
Tony Asleson [Wed, 15 Mar 2017 18:08:19 +0000 (13:08 -0500)]
lvmdbusd: Limit state refreshes for udev events

Udev events can come in like a flood when something changes.  It really
doesn't do us any good to refresh the state of the service numerous times
when 1 would suffice.  We had something like this before, but it was
removed when we added the refresh thread.  However, we have since learned
that we need to sequence events in the correct order and block dbus
operations if we believe the state has been affected, thus udev events are
being processed on the main work queue.  This change limits spurious
work items from getting to the queue.

7 years agolvmdbusd: Call add_no_notify for *move commands
Tony Asleson [Wed, 15 Mar 2017 15:58:41 +0000 (10:58 -0500)]
lvmdbusd: Call add_no_notify for *move commands

Missed this in change when "add_no_notify" was added.  This was causing
extra external events to process when we did moves.

7 years agolvmdbusd: Only disable notify_dbus after getting external event
Tony Asleson [Wed, 15 Mar 2017 15:57:01 +0000 (10:57 -0500)]
lvmdbusd: Only disable notify_dbus after getting external event

If we always disable the sending of notify dbus events then in the case
where all the users are lvm dbus users we will be in udev handling mode
until at least 1 external lvm command occurs.  Instead we will not disable
notify dbus until after we get at least 1 external event.  This makes the
service get into the correct mode of operation faster.

7 years agotests: early detect leaking error dev
Zdenek Kabelac [Mon, 20 Mar 2017 13:18:50 +0000 (14:18 +0100)]
tests: early detect leaking error dev

lvconvert should not leak 'error' device.

(This patch is not fix the problem, just makes it more easily visible
instead of more confusing 'clvmd' trace).

7 years agoman: advise against mirrored mirror log
David Teigland [Fri, 17 Mar 2017 16:54:39 +0000 (11:54 -0500)]
man: advise against mirrored mirror log

7 years agohelp: align option list in pv/lv/vgchange cases
David Teigland [Fri, 17 Mar 2017 16:20:51 +0000 (11:20 -0500)]
help: align option list in pv/lv/vgchange cases

Align one-required options like is done for
optional options.

7 years agoraid: check target version for shrink support
Heinz Mauelshagen [Fri, 17 Mar 2017 15:46:33 +0000 (16:46 +0100)]
raid: check target version for shrink support

Starting with dm-raid target version 1.9.0 shrinking of mapped devices is supported.
Check for support being present in lvresize and lvreduce.

Related: rhbz1394048

7 years agoraid: conditionally reject convert to striped/raid; fix
Heinz Mauelshagen [Fri, 17 Mar 2017 15:03:35 +0000 (16:03 +0100)]
raid: conditionally reject convert to striped/raid; fix

Fix a logic flaw introduced in commit 17bee733d16e
preventing e.g. striped -> raid5 conversions.

Related: rhbz1191935
Related: rhbz1366296

7 years agoWHATS_NEW: conditionally reject raid convert
Heinz Mauelshagen [Fri, 17 Mar 2017 13:51:10 +0000 (14:51 +0100)]
WHATS_NEW: conditionally reject raid convert

7 years agoraid: cleanup; remove unused function
Heinz Mauelshagen [Fri, 17 Mar 2017 13:24:09 +0000 (14:24 +0100)]
raid: cleanup; remove unused function

Remove unused function (lv_has_constant_stripes() is used instead).

7 years agotests: raise min dm cache version
Zdenek Kabelac [Fri, 17 Mar 2017 13:20:20 +0000 (14:20 +0100)]
tests: raise min dm cache version

Since we want to test different cache policies with profiles mq&smq
raise version to 1.8.

TODO: maybe split in more tests so older targets can test here as well.
N.B.: passthrough is also not supported with version 1.3

7 years agoproperties: only thin-pool provides discards
Zdenek Kabelac [Fri, 17 Mar 2017 13:01:18 +0000 (14:01 +0100)]
properties: only thin-pool provides discards

Quering non-thin-pool segment for discard property may lead
to intenal error if the segment had set 'out-of-range' value,
so only thin-pool is allowed, for other it returns NULL.

7 years agolvm2app: correct internal API changes
Zdenek Kabelac [Fri, 17 Mar 2017 13:00:18 +0000 (14:00 +0100)]
lvm2app: correct internal API changes

Internal library gets more strict about setting discard and
zero_new_blocks parameter.

7 years agoraid: cleanup
Heinz Mauelshagen [Fri, 17 Mar 2017 13:14:42 +0000 (14:14 +0100)]
raid: cleanup

Move function _raid45_to_raid54_wrapper() to avoid superfluous declaration.

7 years agoraid: name variables consistently
Heinz Mauelshagen [Fri, 17 Mar 2017 13:04:03 +0000 (14:04 +0100)]
raid: name variables consistently

Related: rhbz1191935
Related: rhbz1366296

7 years agoraid: conditionally reject convert to striped/raid0*
Heinz Mauelshagen [Fri, 17 Mar 2017 12:58:54 +0000 (13:58 +0100)]
raid: conditionally reject convert to striped/raid0*

If SubLVs to be removed still exist after an image removing
conversion (i.e. "lvconvert --yes --force --stripes N "
with N < total stripes) any request to convert to a different
striped/raid* level has to be rejected until after those freed
SubLVs got removed by running the aforementioned lvconvert again.

Add tests to check conversion to striped/raid* gets rejected.
Enhance a test comment.

Related: rhbz1191935
Related: rhbz1366296

7 years agoman: Build man-generator in tools dir.
Alasdair G Kergon [Thu, 16 Mar 2017 23:10:40 +0000 (23:10 +0000)]
man: Build man-generator in tools dir.

Use ln to make a copy of command.c for compilation with different DEFS
then handle dependencies the normal way.

7 years agoman: Preserve template variables in pre-generated pages.
Alasdair G Kergon [Thu, 16 Mar 2017 23:08:59 +0000 (23:08 +0000)]
man: Preserve template variables in pre-generated pages.

7 years agomake.tmpl: Support per-object DEFS.
Alasdair G Kergon [Thu, 16 Mar 2017 23:03:03 +0000 (23:03 +0000)]
make.tmpl: Support per-object DEFS.

Same as CFLAGS.

7 years agotools: Avoid man-generator compilation warnings.
Alasdair G Kergon [Thu, 16 Mar 2017 22:39:04 +0000 (22:39 +0000)]
tools: Avoid man-generator compilation warnings.

Unused variables and make fns with missing prototypes static.

7 years agoman: lvmraid(7) clarifications
Heinz Mauelshagen [Thu, 16 Mar 2017 22:10:57 +0000 (23:10 +0100)]
man: lvmraid(7) clarifications

7 years agoWHATS_NEW: ensure raid6 upconversion restrictions
Heinz Mauelshagen [Thu, 16 Mar 2017 21:33:08 +0000 (22:33 +0100)]
WHATS_NEW: ensure raid6 upconversion restrictions

7 years agoWHATS_NEW: adjust mirror+raid DSOs to lvconvert --repair
Heinz Mauelshagen [Thu, 16 Mar 2017 21:27:30 +0000 (22:27 +0100)]
WHATS_NEW: adjust mirror+raid DSOs to lvconvert --repair

7 years agolvconvert: ensure upconversion restrictions
Heinz Mauelshagen [Thu, 16 Mar 2017 21:10:32 +0000 (22:10 +0100)]
lvconvert: ensure upconversion restrictions

Ensure minimum number of 3 data stripes on conversions to raid6.

Add test for it.

Resolves: rhbz1432675

7 years agotest: adjust to proper dm-raid target version
Heinz Mauelshagen [Thu, 16 Mar 2017 20:17:58 +0000 (21:17 +0100)]
test: adjust to proper dm-raid target version

Adjust to final target version 1.10.1 supporting reshape
properly and to recently changed report field specifications
(e.g. rehape_len_le) to allow these tests to run.

Lower mirror region size to suite the tiny test VG.

7 years agodmeventd: adjust mirror/raid DSOs to new repair design
Heinz Mauelshagen [Thu, 16 Mar 2017 20:03:51 +0000 (21:03 +0100)]
dmeventd: adjust mirror/raid DSOs to new repair design

Previous commit 506d88a2ec8c introduced disabling lvmetad on repairs.

Avoid calling lvscan and use of any --config options altogether
in the mirror and raid DSOs.

Related: rhbz1380521

7 years agolvmetad: fix bug in snprintf of disable reason
David Teigland [Thu, 16 Mar 2017 17:15:03 +0000 (12:15 -0500)]
lvmetad: fix bug in snprintf of disable reason

7 years agoWHATS_NEW: disable lvmetad for repair
David Teigland [Thu, 16 Mar 2017 16:56:19 +0000 (11:56 -0500)]
WHATS_NEW: disable lvmetad for repair

7 years agolvconvert: disable lvmetad for repair
David Teigland [Thu, 16 Mar 2017 15:56:05 +0000 (10:56 -0500)]
lvconvert: disable lvmetad for repair

Repairing missing devices does not work reliably
with lvmetad, so disable lvmetad before repair.
A standard lvmetad refresh (pvscan --cache) will
enable lvmetad again.

7 years agodmeventd: reintroduce fix mirror DSO to work with lvmetad
Heinz Mauelshagen [Thu, 16 Mar 2017 13:19:06 +0000 (14:19 +0100)]
dmeventd: reintroduce fix mirror DSO to work with lvmetad

Commit 07ded8059cbd assumed that the mirror is blocked which is not the case.

It is accessible, degraded and in need of repair because some of its legs
(partially) failed.  Any auto-repair via dmeventd fails though because
of lvmetad not providing proper data about the failed PV(s).  That's why
this workaround got introduced in commit 76f6951c3e8f until we get to
the lvmetad interaction core issue.

Mind any mirror auto-repair failure is caused by such lvmetad interaction
problems not yet solved so disabling lvmetad works as a resort as elaborated
on in the related bz.

Reintroducing the interim solution.

Resolves: rhbz1380521

7 years agospec: Disable sanlock only, keep lockd_dlm enabled
Marian Csontos [Fri, 16 Sep 2016 16:01:31 +0000 (18:01 +0200)]
spec: Disable sanlock only, keep lockd_dlm enabled

7 years agospec: Replace remaining %define by %global
Marian Csontos [Fri, 16 Sep 2016 15:30:01 +0000 (17:30 +0200)]
spec: Replace remaining %define by %global

7 years agospec: Use %global instead of %define for constants
Marian Csontos [Fri, 16 Sep 2016 15:23:32 +0000 (17:23 +0200)]
spec: Use %global instead of %define for constants

Using %define is now discouraged by Fedora Packaging Guidelines

7 years agospec: Update requirements for lockd
Marian Csontos [Fri, 16 Sep 2016 15:21:24 +0000 (17:21 +0200)]
spec: Update requirements for lockd

lockd requires sanlock >= 3.3.0

7 years agospec: Profiles are not %config(noreplace)
Marian Csontos [Wed, 14 Sep 2016 12:39:44 +0000 (14:39 +0200)]
spec: Profiles are not %config(noreplace)

These files are just examples and should not be edited by user.

7 years agoman: Make dmfilemapd.8 optional dev-mcsontos-filemapd
Marian Csontos [Thu, 16 Mar 2017 11:26:51 +0000 (12:26 +0100)]
man: Make dmfilemapd.8 optional

7 years agospec: lvmchange is built-in command
Marian Csontos [Thu, 16 Mar 2017 10:44:10 +0000 (11:44 +0100)]
spec: lvmchange is built-in command

7 years agoman: Handle empty MAN8GENERATED
Marian Csontos [Thu, 16 Mar 2017 10:33:07 +0000 (11:33 +0100)]
man: Handle empty MAN8GENERATED

7 years agotests: better disk delay
Zdenek Kabelac [Thu, 16 Mar 2017 07:49:52 +0000 (08:49 +0100)]
tests: better disk delay

Delay only writable extents.
Skip zeroing for earlier lvcreate finish.

7 years agotests: add missing --yes
Zdenek Kabelac [Thu, 16 Mar 2017 07:44:44 +0000 (08:44 +0100)]
tests: add missing --yes

7 years agotools: Drop unused e2fsadm refs (replaced by fsadm).
Alasdair G Kergon [Thu, 16 Mar 2017 02:24:39 +0000 (02:24 +0000)]
tools: Drop unused e2fsadm refs (replaced by fsadm).

7 years agoman: Include lvmchange/lvmsar/lvmsadc content in lvm.8
Alasdair G Kergon [Thu, 16 Mar 2017 02:09:51 +0000 (02:09 +0000)]
man: Include lvmchange/lvmsar/lvmsadc content in lvm.8

Remove separate lvmchange man page as the external command has also been
removed.

7 years agoman: Reinstate previous lvmsar and lvmsadc pages.
Alasdair G Kergon [Thu, 16 Mar 2017 01:49:40 +0000 (01:49 +0000)]
man: Reinstate previous lvmsar and lvmsadc pages.

Avoid listing all the common options for obsolete commands.

7 years agolvmsar/lvmsadc: Mention dmstats when run.
Alasdair G Kergon [Thu, 16 Mar 2017 01:36:02 +0000 (01:36 +0000)]
lvmsar/lvmsadc: Mention dmstats when run.

7 years agolvmchange: Move to a built-in command.
Alasdair G Kergon [Thu, 16 Mar 2017 01:09:29 +0000 (01:09 +0000)]
lvmchange: Move to a built-in command.

Has been obsolete since LVM1 and it's clear we'll never implement this.

7 years agoman: Remove blank lines from pregenerated files
Alasdair G Kergon [Thu, 16 Mar 2017 00:50:27 +0000 (00:50 +0000)]
man: Remove blank lines from pregenerated files

7 years agoman: reinstate lvmchange man page for now
Alasdair G Kergon [Thu, 16 Mar 2017 00:46:35 +0000 (00:46 +0000)]
man: reinstate lvmchange man page for now

7 years agomirror: revert 76f6951c3e8f0933df9730a42e9c46f273d1da24
Zdenek Kabelac [Thu, 16 Mar 2017 00:17:57 +0000 (01:17 +0100)]
mirror: revert 76f6951c3e8f0933df9730a42e9c46f273d1da24

Effectively revert whole  76f6951c3e8f0933df9730a42e9c46f273d1da24.
We need to figure out some other solution.

At this moment usage of --config  with 'repair' of blocked mirror
is 'freezing' combination.

7 years agoraid: use 64bit arithmetic
Zdenek Kabelac [Wed, 15 Mar 2017 23:51:52 +0000 (00:51 +0100)]
raid: use 64bit arithmetic

Coverity - keep  multiplication for size cals in 64bit
(otherwise it's just 32b x 32b)

7 years agocoverity: make sure segtype pointer is valid
Zdenek Kabelac [Wed, 15 Mar 2017 23:46:48 +0000 (00:46 +0100)]
coverity: make sure segtype pointer is valid

7 years agolibdm: fix endless loop
Zdenek Kabelac [Wed, 15 Mar 2017 23:36:06 +0000 (00:36 +0100)]
libdm: fix endless loop

Coverity noticed endless loop (i not being changed).

TODO: test coverage

7 years agothin: remove unneeed test for NULL
Zdenek Kabelac [Wed, 15 Mar 2017 23:34:31 +0000 (00:34 +0100)]
thin: remove unneeed test for NULL

In this API NULL is not valid parameter so do not check for it.

7 years agocoverity: update models
Zdenek Kabelac [Tue, 14 Mar 2017 13:15:55 +0000 (14:15 +0100)]
coverity: update models

Latest versions do get quite  strange - so let's use suggestions
from their authors...

7 years agomirror: avoid scanning
Zdenek Kabelac [Wed, 15 Mar 2017 23:00:52 +0000 (00:00 +0100)]
mirror: avoid scanning

While mirror is blocked we can't try to scan device.
Regression introduce by previous commit
76f6951c3e8f0933df9730a42e9c46f273d1da24.

7 years agoman: Minor clarifications and grammar corrections for lvmraid.7
Jonathan Brassow [Wed, 15 Mar 2017 23:19:29 +0000 (18:19 -0500)]
man:  Minor clarifications and grammar corrections for lvmraid.7

7 years agoman: remove blank lines from end/des files
David Teigland [Wed, 15 Mar 2017 20:59:43 +0000 (15:59 -0500)]
man: remove blank lines from end/des files

which produce unwanted blank lines in some output
formats.

7 years agohelp: fix missing newlines
David Teigland [Wed, 15 Mar 2017 16:40:59 +0000 (11:40 -0500)]
help: fix missing newlines

Recent commits to remove newlines from man output
accidentally removed some newlines from help output.

7 years agoman: remove blank lines in included files
David Teigland [Wed, 15 Mar 2017 16:30:34 +0000 (11:30 -0500)]
man: remove blank lines in included files

7 years agoman: remove blank lines
David Teigland [Wed, 15 Mar 2017 16:05:31 +0000 (11:05 -0500)]
man: remove blank lines

Blank lines in the man source sometimes appear as extra
blank lines in the output, so remove them.

7 years agoman: specify man-generator path
Alasdair G Kergon [Wed, 15 Mar 2017 01:36:12 +0000 (01:36 +0000)]
man: specify man-generator path

7 years agomake: Support for 'make -R'.
Alasdair G Kergon [Wed, 15 Mar 2017 01:31:11 +0000 (01:31 +0000)]
make: Support for 'make -R'.

Aim to be self-sufficient.

7 years agoman: remove more unnecessary line breaks
David Teigland [Tue, 14 Mar 2017 21:28:20 +0000 (16:28 -0500)]
man: remove more unnecessary line breaks

in case they cause extra blank lines in some output formats.

7 years agoman: remove redundant line breaks
David Teigland [Tue, 14 Mar 2017 19:58:30 +0000 (14:58 -0500)]
man: remove redundant line breaks

unecessary .br and .P

7 years agoargs: clarify repeated --options lists
David Teigland [Tue, 14 Mar 2017 18:52:09 +0000 (13:52 -0500)]
args: clarify repeated --options lists

7 years agoman clvmd: mention attempt for deactivate
David Teigland [Tue, 14 Mar 2017 15:17:46 +0000 (10:17 -0500)]
man clvmd: mention attempt for deactivate

attempt is always the case, but mention it again

7 years agoman: Adjust some wording and update examples style.
Alasdair G Kergon [Tue, 14 Mar 2017 14:55:36 +0000 (14:55 +0000)]
man: Adjust some wording and update examples style.

7 years agoman: Revise internal man page generation process.
Alasdair G Kergon [Tue, 14 Mar 2017 00:47:46 +0000 (00:47 +0000)]
man: Revise internal man page generation process.

For each section 8 man page, a .8_gen file is created from one of:
  .8_main            - Old-style man page - content used directly
  .8_des and .8_end  - Description and end section of a generated page
  .8_pregen      - Pre-generated page used if the generator fails

Other man sections are not generated and use the suffix .5_main or .7_main.

Developers should use 'make generate' to regenerate the .8_pregen files.

7 years agocommands: fix command matching for unused options
David Teigland [Mon, 13 Mar 2017 17:54:56 +0000 (12:54 -0500)]
commands: fix command matching for unused options

When a given command:

- matches command definition A based on required options,
  but uses optional options that are not accepted by A.

- matches command definition B based on required options,
  (but fewer required items than A), and uses no
  unaccepted optional options.

then B is the correct choice.  Command A would fail because
of the unaccepted optional options.  The logic was mistakenly
letting A win because it had a greater number of required option
matches, without accounting for the optional option mismatches.

7 years agocommands: fix lvcreate mirrors/stripes options
David Teigland [Fri, 10 Mar 2017 21:57:26 +0000 (15:57 -0600)]
commands: fix lvcreate mirrors/stripes options

Systematically outline every combination of:
--type striped, --type mirror, --type raid, --mirrors, --stripes
and make sure each is assigned to one specific cmd def.

This revealed that a new command def is needed for
lvcreate that uses both --mirrors and --stripes
but no --type option.

The use of LVCREATE_RAID shortcut for an option set
resulted in mirrors/stripes being included in optional
opts set when they were already in the required list.

7 years agolvmetad: fix segfault on i386
Christian Brauner [Sat, 11 Mar 2017 00:08:43 +0000 (01:08 +0100)]
lvmetad: fix segfault on i386

Sending %d as format argument in lvmetad_vg_remove_pending() will cause
segfaults in config_make_nodes_v() when va_arg() casts to int64_t. Also, it is
clearly advertised in the lvm source code that using plain %d is prohibited, so
let's switch to FMTd64.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoraid: check more cautious on region size changes
Heinz Mauelshagen [Mon, 13 Mar 2017 16:46:56 +0000 (17:46 +0100)]
raid: check more cautious on region size changes

Add additional checks to avoid calling _region_size_change_requested()
with bogus actual arguments.

7 years agodmfilemapd: ensure path argument is absolute
Bryn M. Reeves [Mon, 13 Mar 2017 11:44:05 +0000 (11:44 +0000)]
dmfilemapd: ensure path argument is absolute

Require that the path argument to dmfilemapd be an absolute path
and document this in tool output, libdevmapper.h and dmfilemapd.8.

The check is also enforced by dm_stats_start_filemapd() to avoid
forking a new process with an invalid path argument.

7 years agodmfilemapd: return error for wrong number of args
Bryn M. Reeves [Mon, 13 Mar 2017 11:09:11 +0000 (11:09 +0000)]
dmfilemapd: return error for wrong number of args

The initial check on argc incorrectly returns 1 when the wrong
number of arguments are present, causing a segfault in main()
when no arguments are given:

  # dmfilemapd
  Wrong number of arguments.
  usage: dmfilemapd <fd> <group_id> <path> <mode> [<foreground>[<log_level>]]
  Segmentation fault (core dumped)

7 years agoman: fix typo
Heinz Mauelshagen [Fri, 10 Mar 2017 21:48:16 +0000 (22:48 +0100)]
man: fix typo

7 years agoreport: fix lv_size with reshape space allocated
Heinz Mauelshagen [Fri, 10 Mar 2017 21:44:32 +0000 (22:44 +0100)]
report: fix lv_size with reshape space allocated

Commit f4b30b0daef3 was about displaying visible LV size
when reshape space is allocated.  Take parity devices
into account when displaying the user visible LV size.

7 years agocommands: use correct relative signs with mirror option
David Teigland [Fri, 10 Mar 2017 21:22:13 +0000 (15:22 -0600)]
commands: use correct relative signs with mirror option

As was recently done with relative signes for sizes/extents,
limit the signs used with the mirrors option, e.g.
lvcreate --mirrors now does not accept or advertise an
optional minus sign with the value.  lvconvert --mirrors
accepts +|-.

7 years agoman: add more info/examples to lvmraid(7)
Heinz Mauelshagen [Fri, 10 Mar 2017 21:40:22 +0000 (22:40 +0100)]
man: add more info/examples to lvmraid(7)

Add a warning about maximum supported numbers of stripes
with striped LVs realtive to RAID conversions.

Add examples for a more elaborate, multi-step conversion
from linear to striped (and vice versa).

Shrink lvs examples output.

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agocommands: fix lvconvert options for mirrors/stripes
David Teigland [Fri, 10 Mar 2017 20:05:15 +0000 (14:05 -0600)]
commands: fix lvconvert options for mirrors/stripes

The LVCONVERT_RAID shortcut for including options ended
up including mirrors/stripes as optional opts in defs where
they were already required, or in defs where they would
not be used.  Remove the option set and specify in each
case only the options wanted.

7 years agoraid: fix compile time warning
Heinz Mauelshagen [Fri, 10 Mar 2017 19:37:42 +0000 (20:37 +0100)]
raid: fix compile time warning

7 years agotests: cache profile and metadata2
Zdenek Kabelac [Fri, 10 Mar 2017 18:01:46 +0000 (19:01 +0100)]
tests: cache profile and metadata2

New tests trying to cover support syntax variants.
A lot it still missing...

7 years agocleanup: use FMTu
Zdenek Kabelac [Thu, 9 Mar 2017 22:41:54 +0000 (23:41 +0100)]
cleanup: use FMTu

Replace some PRIu with FMTu for formating strings.

7 years agocleanup: easier code
Zdenek Kabelac [Wed, 8 Mar 2017 13:28:28 +0000 (14:28 +0100)]
cleanup: easier code

7 years agocache: enhance lvdisplay for cache volumes
Zdenek Kabelac [Wed, 1 Mar 2017 23:15:11 +0000 (00:15 +0100)]
cache: enhance lvdisplay for cache volumes

Better support for lvdisplay.
By default info about running (in kernel) cache status is printed.
To get 'segtype' info, user runs: 'lvdisplay -m',  example:

  --- Logical volume ---
  LV Path                /dev/vg/lvol0
  LV Name                lvol0
  VG Name                vg
  LV UUID                Y4uWuN-TBGk-duer-aPWl-yBWn-iFFR-RU1gg1
  LV Write Access        read/write
  LV Creation host, time linux, 2017-03-01 20:52:39 +0100
  LV Cache pool name     lvol2
  LV Cache origin name   lvol0_corig
  LV Status              available
  # open                 0
  LV Size                12,00 MiB
  Cache used blocks      10,42%
  Cache metadata blocks  0,49%
  Cache dirty blocks     0,00%
  Cache read hits/misses 112 / 34
  Cache wrt hits/misses  133 / 0
  Cache demotions        0
  Cache promotions       20
  Current LE             3
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Segments ---
  Logical extents 0 to 2:
    Type cache
    Chunk size 64,00 KiB
    Metadata format 1
    Mode writethrough
    Policy smq
      Setting migration_threshold=100000

7 years agocache: enable usage of --cachemetadataformat
Zdenek Kabelac [Sun, 26 Feb 2017 19:18:37 +0000 (20:18 +0100)]
cache: enable usage of --cachemetadataformat

lvcreate and lvconvert may select cache metadata format when caching LV.
By default lvm2 picks best available format.

7 years agocache: allow to specify cachemetadataformat
Zdenek Kabelac [Fri, 3 Mar 2017 10:33:10 +0000 (11:33 +0100)]
cache: allow to specify  cachemetadataformat

OO_LVCREATE_CACHE accepts --cachemetadataformat.

Support new option --cachemetadataformat auto|1|2 for caching.
Word 'auto' can be also be given as '0'.

7 years agocache: reporting cache metadata format
Zdenek Kabelac [Thu, 23 Feb 2017 16:41:59 +0000 (17:41 +0100)]
cache: reporting cache metadata format

Report CMFmt column with cache metadata format version.

Report KMFmt column with 'kernel cache metadata format version' for device.
(a value reported from status).

(Update 'CacheMode' to name 'Cache' as primary segtype).

7 years agocache: validation for cache_metadata_format
Zdenek Kabelac [Sun, 26 Feb 2017 20:22:43 +0000 (21:22 +0100)]
cache: validation for cache_metadata_format

Only  cache-pool segtype may store cache_metadata_format.
Only supported values are 0,1,2
Format 2 requires LV status uses LV_METADATA_FORMAT.
Format 0 (unselected) or 1 shall not set this 'incompatible' status.

7 years agocache: use DM_CACHE_FEATURE_METADATA2 with libdm
Zdenek Kabelac [Sat, 25 Feb 2017 11:49:55 +0000 (12:49 +0100)]
cache: use DM_CACHE_FEATURE_METADATA2 with libdm

Call libdm  with new feature flag when metadata format 2 is selected
and available in kernel cache target.

7 years agocache: LV supports cache segs with metadata format
Zdenek Kabelac [Wed, 1 Mar 2017 11:26:56 +0000 (12:26 +0100)]
cache: LV supports cache segs with metadata format

Cache pool read/writes metadata_format within its segment type..

For CachePoolLV unselected metadata format is NOT stored in metadata.

For CacheLV when metadata format is not present/selected in lvm2 metadata,
it's automatically assumed to be the version 1 (backward compatible).

To ensure older lvm2 will not 'miss-read' metadata with new version 2,
such LV is marked with METADATA_FORMAT status flag (segment is
specifying metadata format). So when cache uses metadata format 2,
it will become inaccesible on older system without such support.
(kernel dm cache < 1.10,  lvm2 < 2.02.169).

7 years agocache: introduce allocation/cache_metadata_format
Zdenek Kabelac [Sun, 26 Feb 2017 19:19:07 +0000 (20:19 +0100)]
cache: introduce allocation/cache_metadata_format

Add new profilable configation setting to let user select
which metadata format of a created cache pool he wish to use.

By default the 'best' available format is autodetected at runtime,
but user may enforce format 1 or 2 ATM.

Code also detects availability for metadata2 supporting cache target.

In case of troubles user may easily Disable usage of this feature
by placing 'metadata2' into global/cache_disabled_features list.

7 years agolibdm: maintain binary interface for new FEATURE flag
Zdenek Kabelac [Fri, 24 Feb 2017 21:41:42 +0000 (22:41 +0100)]
libdm: maintain binary interface for new FEATURE flag

Older library version was not detecting unknown 'feature' bits
and could let start target without needed option.

New versioned symbol now checks for supported feature bits.
_Base version keeps accepting only previously known features and
mask/ignores unknown bits.

NB: if the older binary passed in 'random' bits, it will not get
metadata2 by chance. New linked binary get new validation function.
Library user is required to not pass 'trash' for unsupported bits,
as such calls will be rejected.

7 years agolibdm: support cache metadata2 feature flag
Zdenek Kabelac [Thu, 23 Feb 2017 22:38:06 +0000 (23:38 +0100)]
libdm: support cache metadata2 feature flag

Dm cache target version 1.10 introduces new cache metadata format
(upstream kernel >=4.11).

New format is enable by passing new target feature flag metadata2.
Interace side on libdm uses DM_CACHE_FEATURE_METADATA2.
This feature bit is now also recognized on status
and set in 'feature_flags' field of dm_status_cache structure.

Code also adds check for 'highest' supported feature flag bit.
So it rejects properly any 'unknown' feature bit set by application.

7 years agolibdm: better code to enforce writethrough
Zdenek Kabelac [Thu, 23 Feb 2017 22:35:40 +0000 (23:35 +0100)]
libdm: better code to enforce writethrough

Better code to enforce writethrough caching for cleaner policy.
Only check for cleaner when DM_CACHE_FEATURE_PASSTHROUGH or
DM_CACHE_FEATURE_WRITEBACK is set.

7 years agolibdm: passthrough checks traling space char
Zdenek Kabelac [Sun, 26 Feb 2017 18:31:06 +0000 (19:31 +0100)]
libdm: passthrough checks traling space char

When checking for passthrough length, check also for extra ' ' char
just like with other feature strings.

7 years agotests: use LVM_SYSTEM_DIR for etc
Zdenek Kabelac [Thu, 2 Mar 2017 22:01:30 +0000 (23:01 +0100)]
tests: use LVM_SYSTEM_DIR for etc

Instead of hardcoding etc/ dir  use $LVM_SYSTEM_DIR.

7 years agocleanup: minor cosmetics
Zdenek Kabelac [Tue, 28 Feb 2017 11:31:36 +0000 (12:31 +0100)]
cleanup: minor cosmetics

Update some return value to match return type.
Drop unused function and declaration.

7 years agocache: improve profile support for cache_set_policy
Zdenek Kabelac [Tue, 7 Mar 2017 22:54:01 +0000 (23:54 +0100)]
cache: improve profile support for cache_set_policy

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