* [Cluster-devel] [PATCH] GFS2: return conflicts for GETLK
@ 2007-06-08 21:51 David Teigland
2007-06-08 22:01 ` David Teigland
0 siblings, 1 reply; 4+ messages in thread
From: David Teigland @ 2007-06-08 21:51 UTC (permalink / raw)
To: cluster-devel.redhat.com
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 <adas@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Index: linux-quilt/fs/gfs2/locking/dlm/plock.c
===================================================================
--- linux-quilt.orig/fs/gfs2/locking/dlm/plock.c 2007-06-08 15:26:03.000000000 -0500
+++ linux-quilt/fs/gfs2/locking/dlm/plock.c 2007-06-08 16:43:40.000000000 -0500
@@ -254,16 +254,20 @@
}
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 > 1) {
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);
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Cluster-devel] [PATCH] GFS2: return conflicts for GETLK
2007-06-08 21:51 [Cluster-devel] [PATCH] GFS2: return conflicts for GETLK David Teigland
@ 2007-06-08 22:01 ` David Teigland
2007-06-09 14:33 ` [Cluster-devel] " Steven Whitehouse
0 siblings, 1 reply; 4+ messages in thread
From: David Teigland @ 2007-06-08 22:01 UTC (permalink / raw)
To: cluster-devel.redhat.com
We weren't returning the correct result when GETLK found a conflict,
which is indicated by userspace passing back a 1.
(Typo in the previous post of this patch.)
Signed-off-by: Abhijith Das <adas redhat com>
Signed-off-by: David Teigland <teigland redhat com>
Index: linux-quilt/fs/gfs2/locking/dlm/plock.c
===================================================================
--- linux-quilt.orig/fs/gfs2/locking/dlm/plock.c 2007-06-08 15:26:03.000000000 -0500
+++ linux-quilt/fs/gfs2/locking/dlm/plock.c 2007-06-08 16:59:54.000000000 -0500
@@ -254,16 +254,20 @@
}
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);
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Cluster-devel] Re: [PATCH] GFS2: return conflicts for GETLK
2007-06-08 22:01 ` David Teigland
@ 2007-06-09 14:33 ` Steven Whitehouse
0 siblings, 0 replies; 4+ messages in thread
From: Steven Whitehouse @ 2007-06-09 14:33 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
Now added to the GFS2 -nmw git tree. Thanks,
Steve.
On Fri, 2007-06-08 at 17:01 -0500, David Teigland wrote:
> We weren't returning the correct result when GETLK found a conflict,
> which is indicated by userspace passing back a 1.
> (Typo in the previous post of this patch.)
>
> Signed-off-by: Abhijith Das <adas redhat com>
> Signed-off-by: David Teigland <teigland redhat com>
>
> Index: linux-quilt/fs/gfs2/locking/dlm/plock.c
> ===================================================================
> --- linux-quilt.orig/fs/gfs2/locking/dlm/plock.c 2007-06-08 15:26:03.000000000 -0500
> +++ linux-quilt/fs/gfs2/locking/dlm/plock.c 2007-06-08 16:59:54.000000000 -0500
> @@ -254,16 +254,20 @@
> }
> 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);
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Cluster-devel] [PATCH] [GFS2] return conflicts for GETLK
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] set plock owner in GETLK info swhiteho
@ 2007-07-09 16:02 ` swhiteho
0 siblings, 0 replies; 4+ messages in thread
From: swhiteho @ 2007-07-09 16:02 UTC (permalink / raw)
To: cluster-devel.redhat.com
From: David Teigland <teigland@redhat.com>
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 <adas redhat com>
Signed-off-by: David Teigland <teigland redhat com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
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
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-07-09 16:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-08 21:51 [Cluster-devel] [PATCH] GFS2: return conflicts for GETLK David Teigland
2007-06-08 22:01 ` David Teigland
2007-06-09 14:33 ` [Cluster-devel] " Steven Whitehouse
-- strict thread matches above, loose matches on Subject: below --
2007-07-09 16:02 [Cluster-devel] [GFS2/DLM] Pre-pull Patch Posting swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] flush the glock completely in inode_go_sync swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] fix a couple of races swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] kernel changes to support new gfs2_grow command swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Kernel changes to support new gfs2_grow command (part 2) swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] use zero_user_page swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Addendum patch 2 for gfs2_grow swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Reduce size of struct gdlm_lock swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Clean up inode number handling swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Quotas non-functional - fix bug swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] keep dlm from panicing when traversing rsb list in debugfs swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] block scand during recovery [1/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] add lock timeouts and warnings [2/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] dlm_device interface changes [3/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] cancel in conversion deadlock [4/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] fix new_lockspace error exit [5/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] wait for config check during join [6/6] swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] fix compile breakage swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] latest gfs2-nmw headers break userland build swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] Compile fix swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] timeout fixes swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] canceling deadlocked lock swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] dumping master locks swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] show default protocol swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Quotas non-functional - fix another bug swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Make the log reserved blocks depend on block size swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] fix socket shutdown swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] fix jdata issues swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Fix sign problem in quota/statfs and cleanup _host structures swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Add nanosecond timestamp feature swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] fix reference counting swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [DLM] variable allocation swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Fix typo in rename of directories swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Fix bug in error path of inode swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Can't mount GFS2 file system on AoE device swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] Recovery for lost unlinked inodes swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] gfs2_lookupi() uninitialised var fix swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] set plock owner in GETLK info swhiteho
2007-07-09 16:02 ` [Cluster-devel] [PATCH] [GFS2] return conflicts for GETLK swhiteho
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.