mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[DLM] dlm_device interface changes [3/6]
Change the user/kernel device interface used by libdlm: - Add ability for userspace to check the version of the interface. libdlm can now adapt to different versions of the kernel interface. - Increase the size of the flags passed in a lock request so all possible flags can be used from userspace. - Add an opaque "xid" value for each lock. This "transaction id" will be used later to associate locks with each other during deadlock detection. - Add a "timeout" value for each lock. This is used along with the DLM_LKF_TIMEOUT flag. Also, remove a fragment of unused code in device_read(). This patch requires updating libdlm which is backward compatible with older kernels. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
parent
3ae1acf93a
commit
d7db923ea4
5 changed files with 77 additions and 29 deletions
|
@ -2,7 +2,7 @@
|
|||
*******************************************************************************
|
||||
**
|
||||
** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
|
||||
** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved.
|
||||
** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
|
||||
**
|
||||
** This copyrighted material is made available to anyone wishing to use,
|
||||
** modify, copy, or redistribute it subject to the terms and conditions
|
||||
|
@ -18,21 +18,24 @@
|
|||
#define DLM_USER_LVB_LEN 32
|
||||
|
||||
/* Version of the device interface */
|
||||
#define DLM_DEVICE_VERSION_MAJOR 5
|
||||
#define DLM_DEVICE_VERSION_MINOR 1
|
||||
#define DLM_DEVICE_VERSION_MAJOR 6
|
||||
#define DLM_DEVICE_VERSION_MINOR 0
|
||||
#define DLM_DEVICE_VERSION_PATCH 0
|
||||
|
||||
/* struct passed to the lock write */
|
||||
struct dlm_lock_params {
|
||||
__u8 mode;
|
||||
__u8 namelen;
|
||||
__u16 flags;
|
||||
__u16 unused;
|
||||
__u32 flags;
|
||||
__u32 lkid;
|
||||
__u32 parent;
|
||||
void __user *castparam;
|
||||
__u64 xid;
|
||||
__u64 timeout;
|
||||
void __user *castparam;
|
||||
void __user *castaddr;
|
||||
void __user *bastparam;
|
||||
void __user *bastaddr;
|
||||
void __user *bastaddr;
|
||||
struct dlm_lksb __user *lksb;
|
||||
char lvb[DLM_USER_LVB_LEN];
|
||||
char name[0];
|
||||
|
@ -62,9 +65,15 @@ struct dlm_write_request {
|
|||
} i;
|
||||
};
|
||||
|
||||
struct dlm_device_version {
|
||||
__u32 version[3];
|
||||
};
|
||||
|
||||
/* struct read from the "device" fd,
|
||||
consists mainly of userspace pointers for the library to use */
|
||||
|
||||
struct dlm_lock_result {
|
||||
__u32 version[3];
|
||||
__u32 length;
|
||||
void __user * user_astaddr;
|
||||
void __user * user_astparam;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue