1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-25 10:04:17 +03:00

5007 Commits

Author SHA1 Message Date
Petr Rockai
8179a2dc9c Add code to the dmeventd snapshot plugin to automatically unmount snapshots
that have been invalidated.
2010-10-29 16:43:51 +00:00
Petr Rockai
ab98a1c5dc Alasdair correctly pointed out that if the two closes are concurrent (I haven't
checked, so they *might*), there is still a race possibility with the last
fix. This patch fixes that.
2010-10-27 11:40:14 +00:00
Petr Rockai
d9f958852c Add a missed test for dmeventd -R. 2010-10-27 09:16:31 +00:00
Petr Rockai
27b0895f6d Update WHATS_NEW. 2010-10-27 09:15:48 +00:00
Petr Rockai
fec4084b90 Fix a double close in clvmd.
The management threads (main_loop, the socket thread) could close a single fd
twice in a row sometimes. At least one other thread can be running at the same
time as the threads doing the double close. That one running thread also
happens to do some IO (namely, open /proc/devices, read from it, close it). If
there was enough "demand" for the local socket, this could happen:

- a connection to clvmd is about to finish, let's say the fd is 13 (it often
  happens to be in my test script, don't ask why)
- the local_sock thread calls close(13)
- the lvm thread calls open("/proc/devices"...) and gets 13
- the main_loop thread calls close(13) [OOPS!]
- new connection arrives, and is accept'd by a (new) local_sock thread
- the accept gives an fd of 13 (since it's the lowest free fd at this point)
- the lvm thread gets around to read from it's /proc/devices handle... 13,
  again
- the lvm thread hangs forever trying to read from the socket instead of
  /proc/devices

Signed-off-by: Petr Rockai <prockai@redhat.com>
Reviewed-by: Milan Broz <mbroz@redhat.com>
2010-10-27 09:13:37 +00:00
Petr Rockai
9a9d7c1c55 Use a more generous timeout for dmeventd in t-lvconvert-repair-dmeventd. 2010-10-26 12:53:07 +00:00
Petr Rockai
0f287ed3dd Let's rely on the exit code and do not test for empty output. 2010-10-26 12:52:25 +00:00
Zdenek Kabelac
cf048beade Add missing return for NULL passed buffer
Function pull_stateo() checks for NULL 'buf' - but return for this error
path was missing.  cmirror code never calls this function with NULL 'buf',
so this fix has no effect on current code base, but makes clang happier.
2010-10-26 10:14:41 +00:00
Zdenek Kabelac
558c22a454 Macro uninitialized_var gives warnings in static analysis
Deactivate uninitialized_var() macro for clang static analysis.
2010-10-26 10:04:34 +00:00
Zdenek Kabelac
683f33139e Hotfix usage of __builtin_unreachable()
It's quite new feature which is not supported by older compilers.
So until some better macros are introduced into LVM code - hotfix current
compilation problems and compile this code only for __clang__ defining compilers.
2010-10-26 09:57:03 +00:00
Zdenek Kabelac
810abed9ea Fix NULL pointer dereference for too large MDA error path
Replace dereference of NULL vg with passed vgname to the function
_vg_read_raw_area() in the error path for too large MDA.
2010-10-26 09:13:13 +00:00
Zdenek Kabelac
9bd893bbc7 Instrument compiler about code unreachability
Clang needs some instrumentation help for static code analysis.
It helps gcc and human reader as well.
2010-10-26 09:01:47 +00:00
Zdenek Kabelac
abf79b3678 Use static indentifier for internal functions
Functions _align_chunk() and  _new_chunk() are used only internally inside
pool-fast.c - so keep them static inside this object file.
2010-10-26 08:59:05 +00:00
Zdenek Kabelac
290d1d8c3f Update C declaration () -> (void) 2010-10-26 08:54:37 +00:00
Zdenek Kabelac
f1ec47e131 Remove bufused for calculation
As bufused is assigned 0 in preceding source line
clang Idempotent operation
2010-10-26 08:53:25 +00:00
Mike Snitzer
0e36229da2 Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange.
Simultaneous -a and --refresh is not valid.
poll+monitor are valid together with or without -ay* (but not with -an*)

No longer print polling results summary if no LVs in the VG were polled.
2010-10-26 01:37:59 +00:00
Mike Snitzer
5d5d6e4d4a Explicitly have grep print the matching filenames (needed to
successfully determine scsi_debug device).
2010-10-26 01:25:46 +00:00
Dave Wysochanski
543f8e8cca Update WHATS_NEW for lvm2app property functions 2010-10-25 17:33:51 +00:00
Alasdair Kergon
d5f5a46b33 post-release 2010-10-25 16:38:20 +00:00
Dave Wysochanski
ac146fc759 Add interactive tests for lvm_{pv|vg|lv}_get_property(). 2010-10-25 14:09:19 +00:00
Dave Wysochanski
5b5c981c13 Add lvm_lv_get_property() generic function to obtain value of any lv propert
Add a generic LV property function to lvm2app, similar to VG function.
Return lvm_property_value and require caller to check 'is_valid' flag
and lvm_errno() for API error.
2010-10-25 14:09:08 +00:00
Dave Wysochanski
fbe2b85f22 Add lvm_pv_get_property() generic function to obtain value of any pv property.
Add a generic PV property function to lvm2app, similar to VG function.
Return lvm_property_value and require caller to check 'is_valid' flag
before using the value.  If 'is_valid' is not set, then lvm_errno()
should be used to obtain the specific error.
2010-10-25 14:08:55 +00:00
Dave Wysochanski
377a39fcaf Add lvm_vg_get_property() generic vg property function.
Add a generic VG property function to lvm2app.  Call the internal library
vg_get_property() function.  Strings are dup'd internally.
Rework lvm_vg_get_property to return lvm_property_value and require caller
to check 'is_valid' flag.  If !is_valid, the caller can check lvm_errno()
for the specific error.

Create a 'get_property' function, local to lvm2app, that factors out
most of the common code that copies the components of lvm_property_type
into lvm_property_value.  This allows for a 1-line function for each
of the generic property functions exported by lvm2app.
2010-10-25 14:08:43 +00:00
Dave Wysochanski
6674b9a66f Add 'is_integer' flag into internal lvm_property_type.
Add 'is_integer' flag similar to 'is_string'.
Suggested in review by Petr Rockai.
2010-10-25 14:08:32 +00:00
Alasdair Kergon
73ac1ba150 pre-release v2_02_75 old-v2_02_75 2010-10-25 13:54:29 +00:00
Zdenek Kabelac
fa3bfb017b Use const config node 2010-10-25 13:38:11 +00:00
Zdenek Kabelac
c755772a23 Fix constness warning
Fix usage of const 'data' pointer and also assign void* directly without
uneeded cast for C.
2010-10-25 13:36:57 +00:00
Zdenek Kabelac
441a1d7ee2 Fix constness warning
Keep using const pointers.
2010-10-25 13:36:09 +00:00
Zdenek Kabelac
f6318121f4 Fix constness warning for _vg_read_by_vgid() uuid usage 2010-10-25 13:35:13 +00:00
Zdenek Kabelac
88943533dd Fix constness warnings
After update of device_from_pvid() API fix constness warnings
Also fix info_from_pvid() constness warning for char* usage.
2010-10-25 13:33:42 +00:00
Zdenek Kabelac
fba05d7ba1 Use const pointer for return value of dm_basename
Fix return pointer to const as it is created from passed input const pointer.
2010-10-25 13:13:53 +00:00
Zdenek Kabelac
d302389b9f ok this seems to be never ending story... 2010-10-25 13:10:13 +00:00
Zdenek Kabelac
14ccfd53b5 rom -> from 2010-10-25 13:04:23 +00:00
Zdenek Kabelac
e0256ba49a Use 'const' struct id *pvid for device_from_pvid()
Update interface for device_from_pvid and use const pointer.
2010-10-25 13:02:26 +00:00
Zdenek Kabelac
22f922671e Switch to char* arithmetic from void* 2010-10-25 13:00:35 +00:00
Zdenek Kabelac
589f03e91a Fix missing initilisation to 0
Add missing init value for variable 'found' which is later tested and may
have contained some garbage value.
2010-10-25 12:59:24 +00:00
Zdenek Kabelac
759241e905 Fix potential NULL pointer dereference
Makes clang happier as it covers all code paths and avoids NULL pointer
dereference through the 'com' pointer (which is NULL by default static
initialisation).
2010-10-25 12:57:00 +00:00
Zdenek Kabelac
b68cb6026e Reuse result of previous strchr
Reported by clang as: Argument with 'nonnull' attribute passed null

Reuse the result of the last strchr() call - make sure, 'st' point is not
null for the next strchr() call.
2010-10-25 12:08:15 +00:00
Zdenek Kabelac
b1b18e183c Ensure we always have origin defined
Reported by clang as: Logic error Dereference of null pointer
Make sure the code path could not use NULL origin because of some internal
code error.
2010-10-25 12:05:46 +00:00
Alasdair Kergon
64cdefc540 fix header #defines 2010-10-25 12:01:59 +00:00
Zdenek Kabelac
52aa8cabe3 Print vg_name and do not to access vg->name
Reported by clang as: Logic error Dereference of null pointer
Replace pointer dereference with vg_name.
2010-10-25 12:01:38 +00:00
Zdenek Kabelac
e420410f9a Fix clang warning for ntohl(*((uint32_t *)buf))
We cast (char*) to (uint32_t*) that changes alignment requierements.
For our case the code has been correct as alloca() returns properly
aligned buffer, however this patch make it cleaner and more readable
and avoids warning generation.
2010-10-25 11:57:06 +00:00
Alasdair Kergon
45f69c7d5f Use a more-generic name for the new kernel flag so list_devices can share it. 2010-10-25 11:44:20 +00:00
Alasdair Kergon
612b90ba52 Add global/metadata_read_only to use unrepaired metadata in read-only cmds. 2010-10-25 11:20:54 +00:00
Alasdair Kergon
ae0ac24fdd Don't take write lock in vgchange --refresh, --poll or --monitor. 2010-10-25 10:40:13 +00:00
Alasdair Kergon
4e51f802a0 restrict last checkin to devs consisting entirely of error target 2010-10-25 10:37:34 +00:00
Mike Snitzer
e4c3b136f5 Never scan a device which is using the error target
A merged snapshot's DM device is made to use the "error" target as part
of lvm's transaction to merge a snapshot.  This snapshot merge use-case
aside, any device using the error target shouldn't be scanned.
2010-10-24 17:36:58 +00:00
Dave Wysochanski
f1329d4511 Add lv_get_property() internal lvm function. 2010-10-21 18:51:16 +00:00
Dave Wysochanski
ee5f8f12bf Rename fields in lvm_property_type.
Based on review comments, rename a few fields in lvm_property_type.
In particular, change 'is_writeable' to 'is_settable', which is
more intuitive to the intent of the bitfield (a 'set' function
exists for this field/property).  Also, remove the char array
for 'id' - unnecessary as we can just use the string passed in
to do the strcmp.  Finally rename the union members from n_val
to 'integer' and 's_val' to 'string'.
2010-10-21 14:49:43 +00:00
Dave Wysochanski
cb41445647 Add lv_read_ahead and lv_kernel_read_ahead 'get' functions. 2010-10-21 14:49:31 +00:00