From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757116AbXGIQgZ (ORCPT ); Mon, 9 Jul 2007 12:36:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758301AbXGIQYa (ORCPT ); Mon, 9 Jul 2007 12:24:30 -0400 Received: from mx1.redhat.com ([66.187.233.31]:42205 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758331AbXGIQYU (ORCPT ); Mon, 9 Jul 2007 12:24:20 -0400 From: swhiteho@redhat.com To: linux-kernel@vger.kernel.org Cc: cluster-devel@redhat.com, David Teigland , Steven Whitehouse Subject: [PATCH] [GFS2] return conflicts for GETLK Date: Mon, 9 Jul 2007 17:02:44 +0100 Message-Id: <11839970653759-git-send-email-swhiteho@redhat.com> X-Mailer: git-send-email 1.5.1.2 In-Reply-To: <11839970633982-git-send-email-swhiteho@redhat.com> References: <11839969822277-git-send-email-swhiteho@redhat.com> <1183996989263-git-send-email-swhiteho@redhat.com> <11839969911617-git-send-email-swhiteho@redhat.com> <1183996996300-git-send-email-swhiteho@redhat.com> <11839969982134-git-send-email-swhiteho@redhat.com> <11839970003764-git-send-email-swhiteho@redhat.com> <11839970032102-git-send-email-swhiteho@redhat.com> <11839970052865-git-send-email-swhiteho@redhat.com> <11839970061096-git-send-email-swhiteho@redhat.com> <1183997008395-git-send-email-swhiteho@redhat.com> <11839970101065-git-send-email-swhiteho@redhat.com> <11839970122624-git-send-email-swhiteho@redhat.com> <11839970143164-git-send-email-swhiteho@redhat.com> <11839970162125-git-send-email-swhiteho@redhat.com> <11839970182635-git-send-email-swhiteho@redhat.com> <11839970204036-git-send-email-swhiteho@redhat.com> <11839970222606-git-send-email-swhiteho@redhat.com> <11839970241526-git-send-email-swhiteho@redhat.com> <1183997026104-git-send-email-swhiteho@redhat.com> <11839970282009-git-send-email-swhiteho@redhat.com> <11839970302426-git-send-email-swhiteho@redhat.com> <11839970324005-git-send-email-swhiteho@redhat.com> <1183997034982-git-send-email-swhiteho@redhat.com> <1183997036270-git-send-email-swhiteho@redhat.com> <11839970383020-git-send-email-swhiteho@redhat.com> <11839970403929-git-send-email-swhiteho@redhat.com> <11839970421091-git-send-email-swhiteho@redhat.com> <11839970442448-git-send-email-swhiteho@redhat.com> <11839970463325-git-send-email-swhiteho@redhat.com> <11839970481383-git-send-email-swhiteho@redhat.com> <1183997050365-git-send-email-swhiteho@redhat.com> <11839970521835-git-send-email-swhiteho@redhat.com> <11839970542719-git-send-email-swhiteho@redhat.com> <1183997056121-git-send-email-swhiteho@redhat.com> <11839970573954-git-send-email-swhiteho@redhat.com> <11839970591207-git-send-email-swhiteho@redhat.com> <11839970611456-git-send-email-swhiteho@redhat.com> <11839970633982-git-send-email-swhiteho@redhat.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org From: David Teigland We weren't returning the correct result when GETLK found a conflict, which is indicated by userspace passing back a 1. Signed-off-by: Abhijith Das Signed-off-by: David Teigland Signed-off-by: Steven Whitehouse diff --git a/fs/gfs2/locking/dlm/plock.c b/fs/gfs2/locking/dlm/plock.c index 1dc7680..fba1f1d 100644 --- a/fs/gfs2/locking/dlm/plock.c +++ b/fs/gfs2/locking/dlm/plock.c @@ -254,16 +254,20 @@ int gdlm_plock_get(void *lockspace, struct lm_lockname *name, } spin_unlock(&ops_lock); + /* info.rv from userspace is 1 for conflict, 0 for no-conflict, + -ENOENT if there are no locks on the file */ + rv = op->info.rv; fl->fl_type = F_UNLCK; if (rv == -ENOENT) rv = 0; - else if (rv == 0 && op->info.pid != fl->fl_pid) { + else if (rv > 0) { fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK; fl->fl_pid = op->info.pid; fl->fl_start = op->info.start; fl->fl_end = op->info.end; + rv = 0; } kfree(op); -- 1.5.1.2