diff options
author | David Teigland <teigland@redhat.com> | 2006-08-04 16:19:20 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-08-07 08:46:51 -0400 |
commit | 08eac93a689ca05c7b7413f6d362c7d38b5fd5b1 (patch) | |
tree | 8511ce6587dba063dee9dad5c6ff85cbd108967f /fs/gfs2/locking | |
parent | 3120ec541eafc6ed19bacb395adf08c5872143bf (diff) | |
download | op-kernel-dev-08eac93a689ca05c7b7413f6d362c7d38b5fd5b1.zip op-kernel-dev-08eac93a689ca05c7b7413f6d362c7d38b5fd5b1.tar.gz |
[GFS2] match plock result with correct request
When the result of a posix lock request is read it needs to be matched up
with the correct waiting request. The owner field needs to be used in the
comparison since more than one process may be waiting for locks on the
same file.
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/locking')
-rw-r--r-- | fs/gfs2/locking/dlm/plock.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/locking/dlm/plock.c b/fs/gfs2/locking/dlm/plock.c index e5b11f0..1acb251 100644 --- a/fs/gfs2/locking/dlm/plock.c +++ b/fs/gfs2/locking/dlm/plock.c @@ -232,7 +232,8 @@ static ssize_t dev_write(struct file *file, const char __user *u, size_t count, spin_lock(&ops_lock); list_for_each_entry(op, &recv_list, list) { if (op->info.fsid == info.fsid && - op->info.number == info.number) { + op->info.number == info.number && + op->info.owner == info.owner) { list_del_init(&op->list); found = 1; op->done = 1; |