summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2010-06-21 15:56:57 +0000
committerAlasdair Kergon <agk@redhat.com>2010-06-21 15:56:57 +0000
commitb4ee00356b5adfe105605b8cab9667e216210bfe (patch)
treea5a2be86b2ffb1b4220bb014f58451abd659d0a0
parentaec39dcc34b5d6c7b94d084e17957031f512e594 (diff)
downloadlvm2-b4ee00356b5adfe105605b8cab9667e216210bfe.tar.gz
lvm2-b4ee00356b5adfe105605b8cab9667e216210bfe.tar.xz
lvm2-b4ee00356b5adfe105605b8cab9667e216210bfe.zip
Various cleanups following recent commits.
-rw-r--r--WHATS_NEW16
-rw-r--r--daemons/clvmd/clvmd-cman.c29
-rw-r--r--daemons/clvmd/clvmd-command.c26
-rw-r--r--daemons/clvmd/clvmd-common.h33
-rw-r--r--daemons/clvmd/clvmd-corosync.c41
-rw-r--r--daemons/clvmd/clvmd-gulm.c12
-rw-r--r--daemons/clvmd/clvmd-openais.c25
-rw-r--r--daemons/clvmd/clvmd-singlenode.c16
-rw-r--r--daemons/clvmd/clvmd.c46
-rw-r--r--daemons/clvmd/lvm-functions.c26
-rw-r--r--daemons/clvmd/refresh_clvmd.c16
-rw-r--r--daemons/clvmd/tcp-comms.c11
-rw-r--r--lib/log/log.h2
-rw-r--r--man/dmeventd.8.in28
-rw-r--r--man/lvextend.8.in6
-rw-r--r--man/lvmconf.8.in22
-rw-r--r--man/lvreduce.8.in8
-rw-r--r--man/lvresize.8.in36
18 files changed, 143 insertions, 256 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 0e96f606..e5abcb18 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,16 +1,18 @@
Version 2.02.68 -
===============================
- Add workaround for clvmd -S (socket closed too early and server drops the command).
+ Sleep to workaround clvmd -S race: socket closed early and server drops cmd.
Use early udev synchronisation and update of dev nodes for clustered mirrors.
- Unneeded kdev_t.h reference causing harm for cmirrord on some archs.
- Add man pages for lvmconf and unsupported lvmsadc and lvmsar tools.
- Fix exit code when requesting help using documented -o help option.
+ Remove incorrect inclusion of kdev_t.h from cmirrord/functions.h.
+ Add man pages for lvmconf and non-existent lvmsadc and lvmsar tools.
+ Exit successfully when using -o help (but not -o +help) with LVM reports.
Do not use internal DLM lock definitions in generic LVM2 clvmd code.
Add dmeventd man page.
- Update lvresize/extend/reduce manpages with --nofsck, --resizefs options.
+ Add --force, --nofsck and --resizefs to lvresize/extend/reduce man pages.
Fix lvm2cmd example in documentation.
- Allow use of lvm2app and lvm2cmd headers in C++ mode.
- Fix wrong lvm path creation from configure introduced in previous release.
+ Allow use of lvm2app and lvm2cmd headers in C++ code.
+ Remove some unused #includes from clvmd files.
+ Use #include "" for libdevmapper.h and configure.h throughout tree.
+ Fix 'make exec_prefix' with LVM_PATH / DMEVENTD_PATH. (2.02.67)
Fix segfault in clvmd -R if no response from daemon received.
Version 2.02.67 - 4th June 2010
diff --git a/daemons/clvmd/clvmd-cman.c b/daemons/clvmd/clvmd-cman.c
index 1d37ca1b..52da2acb 100644
--- a/daemons/clvmd/clvmd-cman.c
+++ b/daemons/clvmd/clvmd-cman.c
@@ -17,38 +17,19 @@
* CMAN communication layer for clvmd.
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/utsname.h>
-#include <syslog.h>
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <errno.h>
-#include "libdevmapper.h"
-#include <libdlm.h>
#include "clvmd-comms.h"
#include "clvm.h"
-#include "lvm-logging.h"
#include "clvmd.h"
#include "lvm-functions.h"
+#include <libdlm.h>
+
+#include <syslog.h>
+
#define LOCKSPACE_NAME "clvmd"
struct clvmd_node
diff --git a/daemons/clvmd/clvmd-command.c b/daemons/clvmd/clvmd-command.c
index 04b4632f..3500ca5d 100644
--- a/daemons/clvmd/clvmd-command.c
+++ b/daemons/clvmd/clvmd-command.c
@@ -50,32 +50,18 @@
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <errno.h>
-#include "libdevmapper.h"
-#include "locking.h"
-#include "lvm-logging.h"
-#include "lvm-functions.h"
#include "clvmd-comms.h"
#include "clvm.h"
#include "clvmd.h"
+#include "lvm-functions.h"
+
+#include "locking.h"
+
+#include <sys/utsname.h>
extern debug_t debug;
extern struct cluster_ops *clops;
diff --git a/daemons/clvmd/clvmd-common.h b/daemons/clvmd/clvmd-common.h
new file mode 100644
index 00000000..a94edd41
--- /dev/null
+++ b/daemons/clvmd/clvmd-common.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License v.2.1.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * This file must be included first by every clvmd source file.
+ */
+#ifndef _LVM_CLVMD_COMMON_H
+#define _LVM_CLVMD_COMMON_H
+
+#include "configure.h"
+
+#define _GNU_SOURCE
+#define _FILE_OFFSET_BITS 64
+
+#include "libdevmapper.h"
+
+#include "lvm-logging.h"
+
+#include <unistd.h>
+#include <sys/stat.h>
+
+#endif
diff --git a/daemons/clvmd/clvmd-corosync.c b/daemons/clvmd/clvmd-corosync.c
index 347e431c..cfe71502 100644
--- a/daemons/clvmd/clvmd-corosync.c
+++ b/daemons/clvmd/clvmd-corosync.c
@@ -17,46 +17,23 @@
* and lock manager.
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <errno.h>
-#include <utmpx.h>
-#include <syslog.h>
-#include <assert.h>
-#include "libdevmapper.h"
-#include <corosync/corotypes.h>
+#include "clvm.h"
+#include "clvmd-comms.h"
+#include "clvmd.h"
+#include "lvm-functions.h"
+
+#include "locking.h"
+
#include <corosync/cpg.h>
#include <corosync/quorum.h>
#include <corosync/confdb.h>
#include <libdlm.h>
-#include "locking.h"
-#include "lvm-logging.h"
-#include "clvm.h"
-#include "clvmd-comms.h"
-#include "lvm-functions.h"
-#include "clvmd.h"
+#include <syslog.h>
/* Timeout value for several corosync calls */
#define LOCKSPACE_NAME "clvmd"
diff --git a/daemons/clvmd/clvmd-gulm.c b/daemons/clvmd/clvmd-gulm.c
index 721e7be0..35610041 100644
--- a/daemons/clvmd/clvmd-gulm.c
+++ b/daemons/clvmd/clvmd-gulm.c
@@ -24,35 +24,27 @@
* on the cluster nodes. That is done in tcp-comms.c
*/
-#include "configure.h"
+#include "clvmd-common.h"
+
#include <pthread.h>
-#include <sys/types.h>
#include <sys/utsname.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <sys/stat.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <stdint.h>
#include <signal.h>
#include <fcntl.h>
-#include <string.h>
#include <stddef.h>
#include <stdint.h>
-#include <unistd.h>
-#include <errno.h>
#include <utmpx.h>
#include <syslog.h>
#include <assert.h>
-#include "libdevmapper.h"
#include <ccs.h>
#include <libgulm.h>
#include "locking.h"
-#include "lvm-logging.h"
#include "clvm.h"
#include "clvmd-comms.h"
#include "lvm-functions.h"
diff --git a/daemons/clvmd/clvmd-openais.c b/daemons/clvmd/clvmd-openais.c
index 57449954..fc98b50c 100644
--- a/daemons/clvmd/clvmd-openais.c
+++ b/daemons/clvmd/clvmd-openais.c
@@ -17,33 +17,11 @@
* and lock manager.
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <signal.h>
#include <fcntl.h>
-#include <string.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <errno.h>
-#include <utmpx.h>
#include <syslog.h>
-#include <assert.h>
-#include "libdevmapper.h"
#include <openais/saAis.h>
#include <openais/saLck.h>
@@ -52,7 +30,6 @@
#include <corosync/cpg.h>
#include "locking.h"
-#include "lvm-logging.h"
#include "clvm.h"
#include "clvmd-comms.h"
#include "lvm-functions.h"
diff --git a/daemons/clvmd/clvmd-singlenode.c b/daemons/clvmd/clvmd-singlenode.c
index cbaf5dc9..ec98f2cb 100644
--- a/daemons/clvmd/clvmd-singlenode.c
+++ b/daemons/clvmd/clvmd-singlenode.c
@@ -12,26 +12,20 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
-
-#include "configure.h"
-#include <netinet/in.h>
-#include <sys/un.h>
-#include <sys/socket.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include "libdevmapper.h"
+#include "clvmd-common.h"
#include <pthread.h>
#include "locking.h"
-#include "lvm-logging.h"
#include "clvm.h"
#include "clvmd-comms.h"
#include "lvm-functions.h"
#include "clvmd.h"
+#include <sys/un.h>
+#include <sys/socket.h>
+#include <fcntl.h>
+
static const char SINGLENODE_CLVMD_SOCKNAME[] = "\0singlenode_clvmd";
static int listen_fd = -1;
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index 5986cdd6..edb134f2 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -17,44 +17,28 @@
* CLVMD: Cluster LVM daemon
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
-
-#include "configure.h"
-#include "libdevmapper.h"
+#include "clvmd-common.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/utsname.h>
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdarg.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <syslog.h>
-#include <errno.h>
-#include <limits.h>
-#ifdef HAVE_COROSYNC_CONFDB_H
-#include <corosync/confdb.h>
-#endif
#include "clvmd-comms.h"
-#include "lvm-functions.h"
#include "clvm.h"
-#include "lvm-version.h"
#include "clvmd.h"
+#include "lvm-functions.h"
+#include "lvm-version.h"
#include "refresh_clvmd.h"
-#include "lvm-logging.h"
+
+#ifdef HAVE_COROSYNC_CONFDB_H
+#include <corosync/confdb.h>
+#endif
+
+#include <fcntl.h>
+#include <netinet/in.h>
+#include <signal.h>
+#include <stddef.h>
+#include <syslog.h>
+#include <sys/un.h>
+#include <sys/utsname.h>
#ifndef TRUE
#define TRUE 1
diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
index ff44a0ff..81287284 100644
--- a/daemons/clvmd/lvm-functions.c
+++ b/daemons/clvmd/lvm-functions.c
@@ -13,28 +13,9 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <errno.h>
-#include <syslog.h>
-#include <assert.h>
-#include "libdevmapper.h"
#include "lvm-types.h"
#include "clvm.h"
@@ -45,14 +26,13 @@
/* LVM2 headers */
#include "toolcontext.h"
#include "lvmcache.h"
-#include "lvm-logging.h"
#include "lvm-globals.h"
#include "activate.h"
-#include "locking.h"
#include "archiver.h"
-#include "defaults.h"
#include "memlock.h"
+#include <syslog.h>
+
static struct cmd_context *cmd = NULL;
static struct dm_hash_table *lv_hash = NULL;
static pthread_mutex_t lv_hash_lock;
diff --git a/daemons/clvmd/refresh_clvmd.c b/daemons/clvmd/refresh_clvmd.c
index c1c3aa6f..c3cae35b 100644
--- a/daemons/clvmd/refresh_clvmd.c
+++ b/daemons/clvmd/refresh_clvmd.c
@@ -17,22 +17,14 @@
* Send a command to a running clvmd from the command-line
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
+
+#include "clvm.h"
+#include "refresh_clvmd.h"
-#include "configure.h"
#include <stddef.h>
#include <sys/socket.h>
#include <sys/un.h>
-#include <errno.h>
-#include <unistd.h>
-#include "libdevmapper.h"
-#include <stdint.h>
-#include <stdio.h>
-#include <limits.h>
-
-#include "clvm.h"
-#include "refresh_clvmd.h"
typedef struct lvm_response {
char node[255];
diff --git a/daemons/clvmd/tcp-comms.c b/daemons/clvmd/tcp-comms.c
index 48c47f16..5f865566 100644
--- a/daemons/clvmd/tcp-comms.c
+++ b/daemons/clvmd/tcp-comms.c
@@ -20,31 +20,22 @@
* It can also make outgoing connnections to the other clvmd nodes.
*/
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
+#include "clvmd-common.h"
-#include "configure.h"
#include <pthread.h>
-#include <sys/types.h>
#include <sys/utsname.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-#include <sys/stat.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
-#include <string.h>
#include <stddef.h>
#include <stdint.h>
-#include <unistd.h>
#include <errno.h>
#include <syslog.h>
#include <netdb.h>
#include <assert.h>
-#include "libdevmapper.h"
#include "clvm.h"
#include "clvmd-comms.h"
diff --git a/lib/log/log.h b/lib/log/log.h
index db09630d..10f34be7 100644
--- a/lib/log/log.h
+++ b/lib/log/log.h
@@ -16,8 +16,6 @@
#ifndef _LVM_LOG_H
#define _LVM_LOG_H
-#include <errno.h>
-
/*
* printf()-style macros to use for messages:
*
diff --git a/man/dmeventd.8.in b/man/dmeventd.8.in
index 956982ec..7e7fdcf8 100644
--- a/man/dmeventd.8.in
+++ b/man/dmeventd.8.in
@@ -3,29 +3,28 @@
dmeventd \- Device-mapper event daemon
.SH SYNOPSIS
.B dmeventd
-[\-V]
[\-d]
[\-f]
[\-h]
+[\-V]
[\-?]
.SH DESCRIPTION
dmeventd is the event monitoring daemon for device-mapper devices.
-Plugins are supported.
-
-.br
-LVM plugins:
+Library plugins can register and carry out actions triggered when
+particular events occur.
+.SH
+LVM PLUGINS
.TP
-Snapshot: monitor the filling of snapshot and emits a warning through
-syslog, when the use of snapshot exceedes 80%.
-The warning is repeated when 85%, 90% and 95% of the snapshot are filled.
-(see \fBlvm.conf\fP)
+.I Mirror
+Attempts to handle device failure automatically. See \fBlvm.conf\fP).
.TP
-Mirror: attempts to recover from failures (see \fBlvm.conf\fP).
+.I Snapshot
+Monitors how full a snapshot is becoming and emits a warning to
+syslog when it exceeds 80% full.
+The warning is repeated when 85%, 90% and 95% of the snapshot is filled.
+See \fBlvm.conf\fP.
.SH OPTIONS
.TP
-.I \-V
-Show version of dmeventd.
-.TP
.I \-d
Repeat from 1 to 3 times (-d, -dd, -ddd) to increase the detail of
debug messages sent to syslog.
@@ -36,6 +35,9 @@ Don't fork, run in the foreground.
.TP
.I \-h, \-?
Show help information.
+.TP
+.I \-V
+Show version of dmeventd.
.SH SEE ALSO
.BR lvm (8),
diff --git a/man/lvextend.8.in b/man/lvextend.8.in
index 8f409ab3..0b273ab7 100644
--- a/man/lvextend.8.in
+++ b/man/lvextend.8.in
@@ -65,7 +65,7 @@ use a single value throughout.
StripeSize must be 2^n (n = 2 to 9)
.TP
.I \-f, \-\-force
-Force size extension without any question.
+Proceed with size extension without prompting.
.TP
.I \-n, \-\-nofsck
Do not perform fsck before extending filesystem when filesystem
@@ -73,8 +73,8 @@ requires it. You may need to use \fB--force\fR to proceed with
this option.
.TP
.I \-r, \-\-resizefs
-Resize underlying filesystem together with logical volume size.
-\fBfsadm\fR tool is used for filesystem resize.
+Resize underlying filesystem together with the logical volume using
+\fBfsadm\fR(8).
.SH Examples
"lvextend -L +54 /dev/vg01/lvol10 /dev/sdk3" tries to extend the size of
that logical volume by 54MB on physical volume /dev/sdk3.
diff --git a/man/lvmconf.8.in b/man/lvmconf.8.in
index c966f940..fb3d6107 100644
--- a/man/lvmconf.8.in
+++ b/man/lvmconf.8.in
@@ -6,33 +6,31 @@
.SH "SYNOPSIS"
.B lvmconf
-[\-\-enable-cluster]
[\-\-disable-cluster]
-[\-\-lockinglibdir <dir>]
-[\-\-lockinglib <lib>]
+[\-\-enable-cluster]
[\-\-file <configfile>]
+[\-\-lockinglib <lib>]
+[\-\-lockinglibdir <dir>]
.SH "DESCRIPTION"
.B lvmconf
-is a helper tool to modify cluster locking in \fBlvm.conf\fP(5).
+is a script that modifies the locking configuration in an lvm configuration file. See \fBlvm.conf\fP(5).
.SH "OPTIONS"
.TP
.BR \-\-disable-cluster
-Set the default non-cluster \fBlocking_type\fR.
+Set \fBlocking_type\fR to the default non-clustered type.
.TP
.BR \-\-enable-cluster
-Set a cluster-wide \fBlocking_type\fR available on the system.
+Set \fBlocking_type\fR to the default clustered type on this system.
.TP
-.BR \-\-lockinglibdir " " \fI<dir>\fR
-Set \fBlocking_dir\fR directory where LVM2 places its files locks.
+.BR \-\-file " " \fI<configfile>\fR
+Apply the changes to \fBconfigfile\fR instead of the default \fB#DEFAULT_SYS_DIR#/lvm.conf\fR.
.TP
.BR \-\-lockinglib " " \fI<lib>\fR
-Set external \fBlocking_library\fR locking library to load.
+Set external \fBlocking_library\fR locking library to load if an external locking type is used.
.TP
-.BR \-\-file " " \fI<configfile>\fR
-Use non-default \fBconfigfile\fR instead of \fB#DEFAULT_SYS_DIR#/lvm.conf\fR.
-
+.BR \-\-lockinglibdir " " \fI<dir>\fR
.SH FILES
.I #DEFAULT_SYS_DIR#/lvm.conf
diff --git a/man/lvreduce.8.in b/man/lvreduce.8.in
index 5d55b5cf..fc772233 100644
--- a/man/lvreduce.8.in
+++ b/man/lvreduce.8.in
@@ -37,7 +37,7 @@ be a multiple of the number of stripes.
See \fBlvm\fP for common options.
.TP
.I \-f, \-\-force
-Force size reduction without any question.
+Force size reduction without prompting even when it may cause data loss.
.TP
.I \-\-noudevsync
Disable udev synchronisation. The
@@ -70,11 +70,11 @@ an absolute size.
.I \-n, \-\-nofsck
Do not perform fsck before resizing filesystem when filesystem
requires it. You may need to use \fB--force\fR to proceed with
-this option. Note: using this option is dangerous.
+this option.
.TP
.I \-r, \-\-resizefs
-Resize underlying filesystem together with logical volume size.
-\fBfsadm\fR tool is used for filesystem resize.
+Resize underlying filesystem together with the logical volume using
+\fBfsadm\fR(8).
.SH Example
"lvreduce -l -3 vg00/lvol1" reduces the size of logical volume lvol1
in volume group vg00 by 3 logical extents.
diff --git a/man/lvresize.8.in b/man/lvresize.8.in
index a2883047..677b2db3 100644
--- a/man/lvresize.8.in
+++ b/man/lvresize.8.in
@@ -29,12 +29,8 @@ volume use
.SH OPTIONS
See \fBlvm\fP for common options.
.TP
-.I \-\-noudevsync
-Disable udev synchronisation. The
-process will not wait for notification from udev.
-It will continue irrespective of any possible udev processing
-in the background. You should only use this if udev is not running
-or has rules that ignore the devices LVM2 creates.
+.I \-f, \-\-force
+Force resize without prompting even when it may cause data loss.
.TP
.I \-l, \-\-extents [+|-]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
Change or set the logical volume size in units of logical extents.
@@ -48,6 +44,22 @@ suffix %PVS, as a percentage of the remaining free space in the
Volume Group with the suffix %FREE, or (for a snapshot) as a percentage
of the total space in the Origin Logical Volume with the suffix %ORIGIN.
.TP
+.I \-n, \-\-nofsck
+Do not perform fsck before resizing filesystem when filesystem
+requires it. You may need to use \fB--force\fR to proceed with
+this option.
+.TP
+.I \-\-noudevsync
+Disable udev synchronisation. The
+process will not wait for notification from udev.
+It will continue irrespective of any possible udev processing
+in the background. You should only use this if udev is not running
+or has rules that ignore the devices LVM2 creates.
+.TP
+.I \-r, \-\-resizefs
+Resize underlying filesystem together with the logical volume using
+\fBfsadm\fR(8).
+.TP
.I \-L, \-\-size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
Change or set the logical volume size in units of megabytes.
A size suffix of M for megabytes,
@@ -70,18 +82,6 @@ Not applicable to LVs using the original metadata LVM format, which
must use a single value throughout.
.br
StripeSize must be 2^n (n = 2 to 9)
-.TP
-.I \-f, \-\-force
-Force resize without any question.
-.TP
-.I \-n, \-\-nofsck
-Do not perform fsck before resizing filesystem when filesystem
-requires it. You may need to use \fB--force\fR to proceed with
-this option.
-.TP
-.I \-r, \-\-resizefs
-Resize underlying filesystem together with logical volume size.
-\fBfsadm\fR tool is used for filesystem resize.
.SH Examples
.br
"lvresize -L+16M vg1/lv1 /dev/sda:0-1 /dev/sdb:0-1"