aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/locking
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2006-08-04 17:19:20 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2006-08-07 08:46:51 -0400
commit08eac93a689ca05c7b7413f6d362c7d38b5fd5b1 (patch)
tree8511ce6587dba063dee9dad5c6ff85cbd108967f /fs/gfs2/locking
parent3120ec541eafc6ed19bacb395adf08c5872143bf (diff)
[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.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/locking/dlm/plock.c b/fs/gfs2/locking/dlm/plock.c
index e5b11f0688f6..1acb2519f439 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,
232 spin_lock(&ops_lock); 232 spin_lock(&ops_lock);
233 list_for_each_entry(op, &recv_list, list) { 233 list_for_each_entry(op, &recv_list, list) {
234 if (op->info.fsid == info.fsid && 234 if (op->info.fsid == info.fsid &&
235 op->info.number == info.number) { 235 op->info.number == info.number &&
236 op->info.owner == info.owner) {
236 list_del_init(&op->list); 237 list_del_init(&op->list);
237 found = 1; 238 found = 1;
238 op->done = 1; 239 op->done = 1;