login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
March
»
2
Re: [Ocfs2-devel] [PATCH 11/11] ocfs2_dlmfs: Enable the use of user cluster stacks.
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
[view in full thread]
From: Sunil Mushran
Subject:
Re: [Ocfs2-devel] [PATCH 11/11] ocfs2_dlmfs: Enable the use of user cluster stacks.
Date: Monday, March 1, 2010 - 5:08 pm
Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Joel Becker wrote:
quoted text
> Unlike ocfs2, dlmfs has no permanent storage. It can't store off a > cluster stack it is supposed to be using. So it can't specify the stack > name in ocfs2_cluster_connect(). > > Instead, we create ocfs2_cluster_connect_agnostic(), which simply uses > the stack that is currently enabled. This is find for dlmfs, which will > rely on the stack initialization. > > We add the "stackglue" capability to dlmfs's capability list. This lets > userspace know dlmfs can be used with all cluster stacks. > > Signed-off-by: Joel Becker <joel.becker@oracle.com> > --- > fs/ocfs2/dlmfs/dlmfs.c | 2 +- > fs/ocfs2/dlmfs/userdlm.c | 8 ++++---- > fs/ocfs2/ocfs2_lockingver.h | 2 ++ > fs/ocfs2/stackglue.c | 18 ++++++++++++++++++ > fs/ocfs2/stackglue.h | 11 +++++++++++ > 5 files changed, 36 insertions(+), 5 deletions(-) > > diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c > index 8697366..1b0de15 100644 > --- a/fs/ocfs2/dlmfs/dlmfs.c > +++ b/fs/ocfs2/dlmfs/dlmfs.c > @@ -87,7 +87,7 @@ struct workqueue_struct *user_dlm_worker; > * - bast : POLLIN against the file descriptor of a held lock > * signifies a bast fired on the lock. > */ > -#define DLMFS_CAPABILITIES "bast" > +#define DLMFS_CAPABILITIES "bast stackglue" > extern int param_set_dlmfs_capabilities(const char *val, > struct kernel_param *kp) > { > diff --git a/fs/ocfs2/dlmfs/userdlm.c b/fs/ocfs2/dlmfs/userdlm.c > index c1b6a56..2858ee6 100644 > --- a/fs/ocfs2/dlmfs/userdlm.c > +++ b/fs/ocfs2/dlmfs/userdlm.c > @@ -666,10 +666,10 @@ struct ocfs2_cluster_connection *user_dlm_register(struct qstr *name) > int rc; > struct ocfs2_cluster_connection *conn; > > - rc = ocfs2_cluster_connect("o2cb", name->name, name->len, > - &user_dlm_lproto, > - user_dlm_recovery_handler_noop, > - NULL, &conn); > + rc = ocfs2_cluster_connect_agnostic(name->name, name->len, > + &user_dlm_lproto, > + user_dlm_recovery_handler_noop, > + NULL, &conn); > if (rc) > mlog_errno(rc); > > diff --git a/fs/ocfs2/ocfs2_lockingver.h b/fs/ocfs2/ocfs2_lockingver.h > index 82d5eea..2e45c8d 100644 > --- a/fs/ocfs2/ocfs2_lockingver.h > +++ b/fs/ocfs2/ocfs2_lockingver.h > @@ -23,6 +23,8 @@ > /* > * The protocol version for ocfs2 cluster locking. See dlmglue.c for > * more details. > + * > + * 1.0 - Initial locking version from ocfs2 1.4. > */ > #define OCFS2_LOCKING_PROTOCOL_MAJOR 1 > #define OCFS2_LOCKING_PROTOCOL_MINOR 0 > diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c > index 31db2e8..39abf89 100644 > --- a/fs/ocfs2/stackglue.c > +++ b/fs/ocfs2/stackglue.c > @@ -373,6 +373,24 @@ out: > } > EXPORT_SYMBOL_GPL(ocfs2_cluster_connect); > > +/* The caller will ensure all nodes have the same cluster stack */ > +int ocfs2_cluster_connect_agnostic(const char *group, > + int grouplen, > + struct ocfs2_locking_protocol *lproto, > + void (*recovery_handler)(int node_num, > + void *recovery_data), > + void *recovery_data, > + struct ocfs2_cluster_connection **conn) > +{ > + char *stack_name = NULL; > + > + if (cluster_stack_name[0]) > + stack_name = cluster_stack_name; > + return ocfs2_cluster_connect(stack_name, group, grouplen, lproto, > + recovery_handler, recovery_data, conn); > +} > +EXPORT_SYMBOL_GPL(ocfs2_cluster_connect_agnostic); > + > /* If hangup_pending is 0, the stack driver will be dropped */ > int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn, > int hangup_pending) > diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h > index b1981ba..8ce7398 100644 > --- a/fs/ocfs2/stackglue.h > +++ b/fs/ocfs2/stackglue.h > @@ -246,6 +246,17 @@ int ocfs2_cluster_connect(const char *stack_name, > void *recovery_data), > void *recovery_data, > struct ocfs2_cluster_connection **conn); > +/* > + * Used by callers that don't store their stack name. They must ensure > + * all nodes have the same stack. > + */ > +int ocfs2_cluster_connect_agnostic(const char *group, > + int grouplen, > + struct ocfs2_locking_protocol *lproto, > + void (*recovery_handler)(int node_num, > + void *recovery_data), > + void *recovery_data, > + struct ocfs2_cluster_connection **conn); > int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn, > int hangup_pending); > void ocfs2_cluster_hangup(const char *group, int grouplen); >
--
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
Messages in current thread:
[0/11] ocfs2_dlmfs improvements v2
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 01/11] ocfs2_dlmfs: Add capabilities parameter.
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 02/11] ocfs2_dlmfs: Use poll() to signify BASTs.
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 04/11] ocfs2: Pass lksbs back from stackglue ast/ba ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 05/11] ocfs2: Attach the connection to the lksb
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 06/11] ocfs2: Hang the locking proto on the cluster ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 07/11] ocfs2: Remove the ast pointers from ocfs2_st ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 08/11] ocfs2: Pass the locking protocol into ocfs2_ ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 09/11] ocfs2_dlmfs: Don't honor truncate. The size ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 10/11] ocfs2_dlmfs: Use the stackglue.
, Joel Becker
, (Wed Feb 10, 2:27 am)
[PATCH 11/11] ocfs2_dlmfs: Enable the use of user cluster ...
, Joel Becker
, (Wed Feb 10, 2:27 am)
Re: [Ocfs2-devel] [PATCH 01/11] ocfs2_dlmfs: Add capabilit ...
, Sunil Mushran
, (Thu Feb 11, 1:41 pm)
Re: [Ocfs2-devel] [PATCH 04/11] ocfs2: Pass lksbs back fro ...
, Sunil Mushran
, (Thu Feb 11, 2:20 pm)
Re: [Ocfs2-devel] [PATCH 05/11] ocfs2: Attach the connecti ...
, Sunil Mushran
, (Fri Feb 12, 4:57 pm)
Re: [Ocfs2-devel] [PATCH 06/11] ocfs2: Hang the locking pr ...
, Sunil Mushran
, (Fri Feb 12, 4:59 pm)
Re: [Ocfs2-devel] [PATCH 07/11] ocfs2: Remove the ast poin ...
, Sunil Mushran
, (Fri Feb 12, 6:10 pm)
Re: [Ocfs2-devel] [PATCH 08/11] ocfs2: Pass the locking pr ...
, Sunil Mushran
, (Fri Feb 26, 5:09 pm)
Re: [Ocfs2-devel] [PATCH 09/11] ocfs2_dlmfs: Don't honor t ...
, Sunil Mushran
, (Fri Feb 26, 5:11 pm)
Re: [Ocfs2-devel] [PATCH 10/11] ocfs2_dlmfs: Use the stack ...
, Sunil Mushran
, (Fri Feb 26, 5:27 pm)
Re: [Ocfs2-devel] [PATCH 11/11] ocfs2_dlmfs: Enable the us ...
, Sunil Mushran
, (Mon Mar 1, 5:08 pm)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Greg KH
Og dreams of kernels
Jens Axboe
[PATCH 31/33] Fusion: sg chaining support
Arnd Bergmann
Re: finding your own dead "CONFIG_" variables
Mark Brown
[PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset
Tony Breeds
[LGUEST] Look in object dir for .config
git
:
Brian Downing
Re: Git in a Nutshell guide
John Benes
Re: master has some toys
Matthias Lederhofer
[PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree
Alexander Sulfrian
[RFC/PATCH] RE: git calls SSH_ASKPASS even if DISPLAY is not set
Junio C Hamano
Re: Rss produced by git is not valid xml?
git-commits-head
:
Linux Kernel Mailing List
iSeries: fix section mismatch in iseries_veth
Linux Kernel Mailing List
ixbge: remove TX lock and redo TX accounting.<