From mboxrd@z Thu Jan 1 00:00:00 1970 From: adas@sourceware.org Date: 14 Sep 2006 16:00:19 -0000 Subject: [Cluster-devel] cluster/gfs-kernel/src/dlm plock.c Message-ID: <20060914160019.1103.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: cluster Branch: STABLE Changes by: adas at sourceware.org 2006-09-14 16:00:18 Modified files: gfs-kernel/src/dlm: plock.c Log message: fix for bz 206339. Was passing fl_pid instead of fl_owner causing F_GETLK to return conflicts with a process' own locks Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/dlm/plock.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.12.8.1&r2=1.12.8.2 --- cluster/gfs-kernel/src/dlm/Attic/plock.c 2006/07/12 21:58:29 1.12.8.1 +++ cluster/gfs-kernel/src/dlm/Attic/plock.c 2006/09/14 16:00:18 1.12.8.2 @@ -753,7 +753,7 @@ shrink, shift, split, etc existing locks (this often involves adding new locks in addition to modifying existing locks. */ -static int plock_internal(struct dlm_resource *r, unsigned long owner, +static int plock_internal(struct dlm_resource *r, unsigned long owner, unsigned int pid, int wait, int ex, uint64_t start, uint64_t end) { @@ -1179,7 +1179,7 @@ put_resource(r); goto out; } - + found = get_local_conflict(dlm, r, name, owner, start, end, ex, rowner, rpid); up(&r->sema); @@ -1187,7 +1187,7 @@ if (found) { error = 1; goto out; - } + } } error = get_global_conflict(dlm, name, owner, start, end, ex, rowner, rpid); @@ -1236,7 +1236,7 @@ ex = (fl->fl_type == F_WRLCK) ? 1 : 0; - error = do_plock_get(dlm, name, fl->fl_pid, &fl->fl_start, + error = do_plock_get(dlm, name, fl->fl_owner, &fl->fl_start, &fl->fl_end, &ex, &owner, &pid); if (error < 0) return error;