1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
Peter Rajnoha 48df36b8c5 activation: check for open count with a timeout before removal/deactivation of an LV
This patch reinstates the lv_info call to check for open count of
the LV we're removing/deactivating - this was changed with commit 125712b
some time ago and we relied on the ioctl retry logic deeper in the libdm
while calling the exact 'remove' ioctl.

However, there are still some situations in which it's still required to
check for open count before we do any 'remove' actions - this mainly
applies to LVs which consist of several sub LVs, like it is for
virtual snapshot devices.

The commit 1146691 fixed the issue with ordering of actions during
virtual snapshot removal while the snapshot is still open. But
the check for the open status of the snapshot is still prone to
marking the snapshot as in use with an immediate exit even though
this could be a temporary asynchronous open only, most notably
because of udev and its WATCH udev rule with accompanying scans
for the event which is asynchronous. The situation where this crops
up most often is when we're closing the LV that was open for read-write
and then calling lvremove immediately.

This patch reinstates the original lv_info call for the open status
of the LV in the lv_check_not_in_use fn that gets called before
we do any LV removal/deactivation. In addition to original logic,
this patch adds its own retry loop with a delay (25x0.2 seconds)
besides the existing ioctl retry loop.
2013-10-15 12:44:42 +02:00
autoconf Using Fedora 14's autoreconf. 2011-01-07 14:38:34 +00:00
conf release 2.02.103 2013-10-04 14:32:23 +01:00
daemons cleanup: WHATS_NEW + compiler warning about discarding const 2013-10-10 09:09:16 +02:00
doc conf: add separate 'conf' dir for config files 2013-07-02 15:22:11 +02:00
include reporting: Add devtypes command. 2013-09-18 01:09:15 +01:00
lib activation: check for open count with a timeout before removal/deactivation of an LV 2013-10-15 12:44:42 +02:00
libdaemon libdaemon: Fix a subtle race in worker thread creation. 2013-10-10 00:34:35 +02:00
libdm libdm: Fix a data race in dm_pool_{create,destroy}. 2013-10-10 00:34:35 +02:00
liblvm lvm2app: lvm_list_pvs_free seg. fault when no PVs 2013-08-14 15:17:39 -05:00
man cmdline: Add --ignoreskippedcluster. 2013-10-01 21:20:10 +01:00
old-tests Add .gitignore files for an in-source-tree build. 2012-06-08 16:26:21 +01:00
po INSTALL rules updates 2010-04-09 21:42:48 +00:00
python python-lvm: Correct parsing arguments for integers 2013-07-26 10:24:01 -05:00
report-generators add copyright notices to new files 2010-07-28 12:20:38 +00:00
reports [REPORT-GENERATORS] cut down stylsheet.css to what we actually use 2010-07-21 10:00:38 +00:00
scripts lvmconf: use_lvmetad=0 on --enable-cluster, reset to default on --disable-cluster 2013-09-24 14:03:42 +02:00
test tests: lvcreate and snapshot update 2013-10-14 00:29:03 +02:00
tools snapshot: disable merging for virtual snaps 2013-10-12 00:15:55 +02:00
udev udev: add support for "NOSCAN" flag 2013-10-08 13:43:14 +02:00
unit-tests cleanup: replace memset with struct initilization 2012-06-22 13:23:03 +02:00
.gitignore gitignore: Ignore files ending in ~ 2012-06-11 16:13:02 +01:00
aclocal.m4 Add aclocal.m4 (for pkgconfig). 2011-01-07 16:27:05 +00:00
configure configure: autoreconf 2013-07-31 15:59:05 +02:00
configure.in libdm: Link to libpthread unconditionally. 2013-10-10 00:34:35 +02:00
COPYING Outline docs 2001-12-31 16:12:40 +00:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in Makefiles: Fix CC variable override. 2013-09-16 19:57:14 +01:00
Makefile.in Makefile: add missing deps 2013-09-23 12:13:51 +02:00
README Rename git report from LVM2.git to lvm2.git. 2012-06-08 17:41:43 +01:00
VERSION post-release 2013-10-04 14:41:32 +01:00
VERSION_DM post-release 2013-10-04 14:41:32 +01:00
WHATS_NEW activation: check for open count with a timeout before removal/deactivation of an LV 2013-10-15 12:44:42 +02:00
WHATS_NEW_DM post-release 2013-10-04 14:41:32 +01:00

This tree contains the LVM2 and device-mapper tools and libraries.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sources.redhat.com/pub/lvm2/

The source code is stored in git:
  http://git.fedorahosted.org/git/lvm2.git
  git clone git://git.fedorahosted.org/git/lvm2.git

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing lists for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

  lvm2-commits@lists.fedorahosted.org (Read-only archive of commits)
  Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel

The source code repository used until 7th June 2012 is accessible here:
  http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2.