From 08eac93a689ca05c7b7413f6d362c7d38b5fd5b1 Mon Sep 17 00:00:00 2001
From: David Teigland <teigland@redhat.com>
Date: Fri, 4 Aug 2006 16:19:20 -0500
Subject: [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>
---
 fs/gfs2/locking/dlm/plock.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'fs')

diff --git a/fs/gfs2/locking/dlm/plock.c b/fs/gfs2/locking/dlm/plock.c
index e5b11f0688..1acb2519f4 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;
-- 
cgit v1.2.2