mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
Correctly handle concurrent read (CR) locks in singlenode clvmd. This means
that we can also test clustered volume groups (vgcreate -c y) in the test suite. Unfortunately we can't make this the testing default since cluster mirrors require further infrastructure, and snapshots probably don't work at all. I'll eventually add a few test cases that create clustered VGs specifically.
This commit is contained in:
parent
bac10d6aa3
commit
44190723a8
@ -157,6 +157,13 @@ static int _lock_resource(const char *resource, int mode, int flags, int *lockid
|
||||
char **_resources_1;
|
||||
int i, j;
|
||||
|
||||
if (mode == LCK_READ) { /* only track PREAD, aka PROTECTED READ */
|
||||
DEBUGLOG("Not tracking CONCURRENT READ lock: %s, flags=%d, mode=%d\n",
|
||||
resource, flags, mode);
|
||||
*lockid = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEBUGLOG("Locking resource %s, flags=%d, mode=%d\n",
|
||||
resource, flags, mode);
|
||||
|
||||
@ -224,6 +231,12 @@ bad:
|
||||
|
||||
static int _unlock_resource(const char *resource, int lockid)
|
||||
{
|
||||
if (lockid < 0) {
|
||||
DEBUGLOG("Not tracking unlock of lockid -1: %s, lockid=%d\n",
|
||||
resource, lockid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEBUGLOG("Unlocking resource %s, lockid=%d\n", resource, lockid);
|
||||
pthread_mutex_lock(&_lock_mutex);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user