From: David Teigland <teigland@redhat.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] lvb length issue [was Re: [ocfs2-tools-devel] question of ocfs2_controld (Jun 27)]
Date: Fri, 31 Jul 2009 11:21:12 -0500 [thread overview]
Message-ID: <20090731162112.GA24461@redhat.com> (raw)
In-Reply-To: <4A72DC8C.303@suse.de>
On Fri, Jul 31, 2009 at 07:59:08PM +0800, Coly Li wrote:
>
>
> David Teigland Wrote:
> > On Wed, Jul 08, 2009 at 09:15:42AM -0500, David Teigland wrote:
> >> On Tue, Jul 07, 2009 at 10:47:42AM -0700, Joel Becker wrote:
> >>> In this case, it's userspace utilities locking to verify no one
> >>> else is doing anything in the cluster. coly has noticed mkfs.ocfs2, but
> >>> tunefs.ocfs2 and fsck.ocfs2 do the same thing.
> >>> While a 64byte user lvb would be ideal, I think a flag to work
> >>> around it would be great. If the flag says "I know this lockspace may
> >>> have !32byte LVBs, but I promise not to use them", and you can error
> >>> when someone tries to set/get LVBs in that case, I think it works.
> >
> > Here's a kernel patch that I've not yet tried. The code using libdlm will
> > need to add the flag 0x00000010 to dlm_new_lockspace(). (Until we've added
> > the new LVB64 define to libdlm.h.)
> >
> > +#define DLM_LSFL_LVB64 0x00000010
> >
> Another difficulty is user space libdlm interface. Right now, the interface
> mkfs.ocfs2 uses to create a lock space is,
> dlm_lshandle_t dlm_create_lockspace(const char *name, mode_t mode)
> {
> return create_lockspace(name, mode, 0);
> }
>
> There is no way to set flags in dlm_create_lockspace() and it is set to 0 inside
> the interface.
>
> Is it possible to export create_lockspace() and release_lockspace() from libdlm
> ? So ocfs2-tools can load these symbols with dlopen() and calls these routines
> with flags (set DLM_LSFL_LVB64).
>
> Other 2 options might be,
> 1) add flags in dlm_create_lockspace(), which will change libdlm api.
> 2) update default lvb length from 32bytes to 64bytes.
I don't think I'll bother with the LVB64 flag hack. Instead, I'm planning to
do a larger API change to really support variable length lvb's from userspace.
It's actually dlm_new_lockspace() that you would use to pass flags, and once
we add variable length lvb's we'll need a new third call that adds an lvblen
parameter.
Dave
next prev parent reply other threads:[~2009-07-31 16:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4A451AB5.9070908@suse.de>
[not found] ` <20090626193436.GC4478@mail.oracle.com>
[not found] ` <4A45257C.6040704@suse.de>
[not found] ` <20090629080023.GB8373@mail.oracle.com>
2009-07-06 12:26 ` [Ocfs2-devel] lvb length issue [was Re: [ocfs2-tools-devel] question of ocfs2_controld (Jun 27)] Coly Li
2009-07-07 16:01 ` David Teigland
2009-07-07 17:06 ` Coly Li
2009-07-07 17:24 ` Sunil Mushran
2009-07-07 18:35 ` Coly Li
2009-07-07 17:47 ` Joel Becker
2009-07-08 14:15 ` David Teigland
2009-07-09 18:53 ` David Teigland
2009-07-09 20:55 ` Joel Becker
2009-07-09 21:55 ` David Teigland
2009-07-09 22:28 ` Joel Becker
2009-07-31 11:59 ` Coly Li
2009-07-31 16:21 ` David Teigland [this message]
2009-07-31 16:49 ` Coly Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090731162112.GA24461@redhat.com \
--to=teigland@redhat.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.