28 #include <linux/module.h>
30 #include <linux/types.h>
33 #include <linux/sysctl.h>
34 #include <linux/random.h>
36 #include <linux/socket.h>
48 #define MLOG_MASK_PREFIX ML_DLM
104 "AST list not empty, pending %d, newlevel %d\n",
112 mlog(0,
"%s: res %.*s, lock %u:%llu, AST getting flushed\n",
122 if (dlm_should_cancel_bast(dlm, lock)) {
123 mlog(0,
"%s: res %.*s, lock %u:%llu, Cancelling BAST\n",
170 mlog(0,
"%s: res %.*s, lock %u:%llu, BAST getting flushed\n",
204 mlog(0,
"getting lvb from lockres for %s node\n",
229 mlog(0,
"%s: res %.*s, lock %u:%llu, Local AST\n", dlm->
name,
238 dlm_update_lvb(dlm, res, lock);
250 mlog(0,
"%s: res %.*s, lock %u:%llu, Remote AST\n", dlm->
name,
258 lksbflags = lksb->
flags;
259 dlm_update_lvb(dlm, res, lock);
263 ret = dlm_send_proxy_ast(dlm, res, lock, lksbflags);
268 struct dlm_lock *lock,
int blocked_type)
274 mlog(0,
"%s: res %.*s, lock %u:%llu, Local BAST, blocked %d\n",
280 (*fn)(lock->
astdata, blocked_type);
289 unsigned int locklen;
306 "Domain %s not fully joined!\n", dlm->
name);
317 "handler!\n", locklen);
323 mlog(
ML_ERROR,
"Both PUT and GET lvb specified, (0x%x)\n",
337 "name=%.*s, node=%u\n", past->
type,
347 mlog(0,
"Got %sast for unknown lockres! cookie=%u:%llu, "
348 "name=%.*s, node=%u\n", (past->
type ==
DLM_AST ?
"" :
"b"),
364 mlog(0,
"Responding with DLM_RECOVERING!\n");
369 mlog(0,
"Responding with DLM_MIGRATING!\n");
394 mlog(0,
"Got %sast for unknown lock! cookie=%u:%llu, name=%.*s, "
410 mlog(0,
"%s: res %.*s, lock %u:%llu, Granted type %d => %d\n",
414 lock->
ml.type, lock->
ml.convert_type);
417 lock->
ml.type = lock->
ml.convert_type;
426 if (
flags & LKM_GET_LVB) {
458 mlog(0,
"%s: res %.*s, to %u, type %d, blocked_type %d\n", dlm->
name,
480 lock->
ml.node, &status);
482 mlog(
ML_ERROR,
"%s: res %.*s, error %d send AST to node %u\n",
488 "node is dead!\n", lock->
ml.node);
492 "DLM_MIGRATING!\n", lock->
ml.node);
496 lock->
ml.node, status);