mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
7fe2b3190b
When both blocking and completion callbacks are queued for lock, the dlm would always deliver the completion callback (cast) first. In some cases the blocking callback (bast) is queued before the cast, though, and should be delivered first. This patch keeps track of the order in which they were queued and delivers them in that order. This patch also keeps track of the granted mode in the last cast and eliminates the following bast if the bast mode is compatible with the preceding cast mode. This happens when a remotely mastered lock is demoted, e.g. EX->NL, in which case the local node queues a cast immediately after sending the demote message. In this way a cast can be queued for a mode, e.g. NL, that makes an in-transit bast extraneous. Signed-off-by: David Teigland <teigland@redhat.com>
19 lines
514 B
C
19 lines
514 B
C
/*
|
|
* Copyright (C) 2006-2010 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
|
|
* of the GNU General Public License v.2.
|
|
*/
|
|
|
|
#ifndef __USER_DOT_H__
|
|
#define __USER_DOT_H__
|
|
|
|
void dlm_user_add_ast(struct dlm_lkb *lkb, int type, int mode);
|
|
int dlm_user_init(void);
|
|
void dlm_user_exit(void);
|
|
int dlm_device_deregister(struct dlm_ls *ls);
|
|
int dlm_user_daemon_available(void);
|
|
|
|
#endif
|