lockres           258 drivers/md/md-cluster.c static void add_resync_info(struct dlm_lock_resource *lockres,
lockres           263 drivers/md/md-cluster.c 	ri = (struct resync_info *)lockres->lksb.sb_lvbptr;
lockres           269 drivers/md/md-cluster.c 			    struct dlm_lock_resource *lockres)
lockres           275 drivers/md/md-cluster.c 	dlm_lock_sync(lockres, DLM_LOCK_CR);
lockres           276 drivers/md/md-cluster.c 	memcpy(&ri, lockres->lksb.sb_lvbptr, sizeof(struct resync_info));
lockres           282 drivers/md/md-cluster.c 	dlm_unlock_sync(lockres);
lockres           536 fs/lockd/svc4proc.c   PROC(lock_res,	lockres,	norep,		res,	void, 1),
lockres           580 fs/lockd/svcproc.c   PROC(lock_res,	lockres,	norep,		res,	void, 1),
lockres            83 fs/ocfs2/dlm/dlmast.c 	res = lock->lockres;
lockres           151 fs/ocfs2/dlm/dlmast.c 	res = lock->lockres;
lockres           206 fs/ocfs2/dlm/dlmcommon.h 	struct dlm_lock_resource *lockres;
lockres           213 fs/ocfs2/dlm/dlmcommon.h 	struct dlm_lock_resource *lockres;
lockres           347 fs/ocfs2/dlm/dlmcommon.h 	struct dlm_lock_resource *lockres;
lockres           120 fs/ocfs2/dlm/dlmdebug.c 	dlm_print_one_lock_resource(lockid->lockres);
lockres           362 fs/ocfs2/dlm/dlmlock.c 	lock->lockres = res;
lockres           370 fs/ocfs2/dlm/dlmlock.c 	res = lock->lockres;
lockres           372 fs/ocfs2/dlm/dlmlock.c 		lock->lockres = NULL;
lockres           595 fs/ocfs2/dlm/dlmlock.c 		res = lock->lockres;
lockres          2063 fs/ocfs2/dlm/dlmmaster.c 	item->u.am.lockres = res; /* already have a ref */
lockres          2093 fs/ocfs2/dlm/dlmmaster.c 	res = item->u.am.lockres;
lockres          1208 fs/ocfs2/dlm/dlmrecovery.c 	     lock->lockres->lockname.len, lock->lockres->lockname.name,
lockres          1210 fs/ocfs2/dlm/dlmrecovery.c 	dlm_print_one_lock_resource(lock->lockres);
lockres          1518 fs/ocfs2/dlm/dlmrecovery.c 	item->u.ml.lockres = res; /* already have a ref */
lockres          1554 fs/ocfs2/dlm/dlmrecovery.c 	res = item->u.ml.lockres;
lockres           285 fs/ocfs2/dlm/dlmthread.c 	struct dlm_lock_resource *lockres;
lockres           293 fs/ocfs2/dlm/dlmthread.c 		lockres = list_entry(dlm->purge_list.next,
lockres           296 fs/ocfs2/dlm/dlmthread.c 		spin_lock(&lockres->spinlock);
lockres           298 fs/ocfs2/dlm/dlmthread.c 		purge_jiffies = lockres->last_used +
lockres           308 fs/ocfs2/dlm/dlmthread.c 			spin_unlock(&lockres->spinlock);
lockres           316 fs/ocfs2/dlm/dlmthread.c 		unused = __dlm_lockres_unused(lockres);
lockres           318 fs/ocfs2/dlm/dlmthread.c 		    (lockres->state & DLM_LOCK_RES_MIGRATING) ||
lockres           319 fs/ocfs2/dlm/dlmthread.c 		    (lockres->inflight_assert_workers != 0)) {
lockres           322 fs/ocfs2/dlm/dlmthread.c 			     dlm->name, lockres->lockname.len,
lockres           323 fs/ocfs2/dlm/dlmthread.c 			     lockres->lockname.name,
lockres           324 fs/ocfs2/dlm/dlmthread.c 			     !unused, lockres->state,
lockres           325 fs/ocfs2/dlm/dlmthread.c 			     lockres->inflight_assert_workers);
lockres           326 fs/ocfs2/dlm/dlmthread.c 			list_move_tail(&lockres->purge, &dlm->purge_list);
lockres           327 fs/ocfs2/dlm/dlmthread.c 			spin_unlock(&lockres->spinlock);
lockres           331 fs/ocfs2/dlm/dlmthread.c 		dlm_lockres_get(lockres);
lockres           333 fs/ocfs2/dlm/dlmthread.c 		dlm_purge_lockres(dlm, lockres);
lockres           335 fs/ocfs2/dlm/dlmthread.c 		dlm_lockres_put(lockres);
lockres           586 fs/ocfs2/dlm/dlmthread.c 		res = lock->lockres;
lockres           630 fs/ocfs2/dlm/dlmthread.c 		res = lock->lockres;
lockres           610 fs/ocfs2/dlm/dlmunlock.c 	if (!lksb->lockid || !lksb->lockid->lockres) {
lockres           619 fs/ocfs2/dlm/dlmunlock.c 	res = lock->lockres;
lockres            37 fs/ocfs2/dlmfs/userdlm.c static inline int user_check_wait_flag(struct user_lock_res *lockres,
lockres            42 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres            43 fs/ocfs2/dlmfs/userdlm.c 	ret = lockres->l_flags & flag;
lockres            44 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres            49 fs/ocfs2/dlmfs/userdlm.c static inline void user_wait_on_busy_lock(struct user_lock_res *lockres)
lockres            52 fs/ocfs2/dlmfs/userdlm.c 	wait_event(lockres->l_event,
lockres            53 fs/ocfs2/dlmfs/userdlm.c 		   !user_check_wait_flag(lockres, USER_LOCK_BUSY));
lockres            56 fs/ocfs2/dlmfs/userdlm.c static inline void user_wait_on_blocked_lock(struct user_lock_res *lockres)
lockres            59 fs/ocfs2/dlmfs/userdlm.c 	wait_event(lockres->l_event,
lockres            60 fs/ocfs2/dlmfs/userdlm.c 		   !user_check_wait_flag(lockres, USER_LOCK_BLOCKED));
lockres            65 fs/ocfs2/dlmfs/userdlm.c cluster_connection_from_user_lockres(struct user_lock_res *lockres)
lockres            69 fs/ocfs2/dlmfs/userdlm.c 	ip = container_of(lockres,
lockres            76 fs/ocfs2/dlmfs/userdlm.c user_dlm_inode_from_user_lockres(struct user_lock_res *lockres)
lockres            80 fs/ocfs2/dlmfs/userdlm.c 	ip = container_of(lockres,
lockres            86 fs/ocfs2/dlmfs/userdlm.c static inline void user_recover_from_dlm_error(struct user_lock_res *lockres)
lockres            88 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres            89 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags &= ~USER_LOCK_BUSY;
lockres            90 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           115 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres = user_lksb_to_lock_res(lksb);
lockres           119 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_namelen, lockres->l_name, lockres->l_level,
lockres           120 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_requested);
lockres           122 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           124 fs/ocfs2/dlmfs/userdlm.c 	status = ocfs2_dlm_lock_status(&lockres->l_lksb);
lockres           127 fs/ocfs2/dlmfs/userdlm.c 		     status, lockres->l_namelen, lockres->l_name);
lockres           128 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           132 fs/ocfs2/dlmfs/userdlm.c 	mlog_bug_on_msg(lockres->l_requested == DLM_LOCK_IV,
lockres           134 fs/ocfs2/dlmfs/userdlm.c 			lockres->l_namelen, lockres->l_name, lockres->l_flags);
lockres           137 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_requested < lockres->l_level) {
lockres           138 fs/ocfs2/dlmfs/userdlm.c 		if (lockres->l_requested <=
lockres           139 fs/ocfs2/dlmfs/userdlm.c 		    user_highest_compat_lock_level(lockres->l_blocking)) {
lockres           140 fs/ocfs2/dlmfs/userdlm.c 			lockres->l_blocking = DLM_LOCK_NL;
lockres           141 fs/ocfs2/dlmfs/userdlm.c 			lockres->l_flags &= ~USER_LOCK_BLOCKED;
lockres           145 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_level = lockres->l_requested;
lockres           146 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_requested = DLM_LOCK_IV;
lockres           147 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags |= USER_LOCK_ATTACHED;
lockres           148 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags &= ~USER_LOCK_BUSY;
lockres           150 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           152 fs/ocfs2/dlmfs/userdlm.c 	wake_up(&lockres->l_event);
lockres           155 fs/ocfs2/dlmfs/userdlm.c static inline void user_dlm_grab_inode_ref(struct user_lock_res *lockres)
lockres           158 fs/ocfs2/dlmfs/userdlm.c 	inode = user_dlm_inode_from_user_lockres(lockres);
lockres           165 fs/ocfs2/dlmfs/userdlm.c static void __user_dlm_queue_lockres(struct user_lock_res *lockres)
lockres           167 fs/ocfs2/dlmfs/userdlm.c 	if (!(lockres->l_flags & USER_LOCK_QUEUED)) {
lockres           168 fs/ocfs2/dlmfs/userdlm.c 		user_dlm_grab_inode_ref(lockres);
lockres           170 fs/ocfs2/dlmfs/userdlm.c 		INIT_WORK(&lockres->l_work, user_dlm_unblock_lock);
lockres           172 fs/ocfs2/dlmfs/userdlm.c 		queue_work(user_dlm_worker, &lockres->l_work);
lockres           173 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_flags |= USER_LOCK_QUEUED;
lockres           177 fs/ocfs2/dlmfs/userdlm.c static void __user_dlm_cond_queue_lockres(struct user_lock_res *lockres)
lockres           181 fs/ocfs2/dlmfs/userdlm.c 	if (!(lockres->l_flags & USER_LOCK_BLOCKED))
lockres           184 fs/ocfs2/dlmfs/userdlm.c 	switch (lockres->l_blocking) {
lockres           186 fs/ocfs2/dlmfs/userdlm.c 		if (!lockres->l_ex_holders && !lockres->l_ro_holders)
lockres           190 fs/ocfs2/dlmfs/userdlm.c 		if (!lockres->l_ex_holders)
lockres           198 fs/ocfs2/dlmfs/userdlm.c 		__user_dlm_queue_lockres(lockres);
lockres           203 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres = user_lksb_to_lock_res(lksb);
lockres           206 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_namelen, lockres->l_name, level, lockres->l_level);
lockres           208 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           209 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags |= USER_LOCK_BLOCKED;
lockres           210 fs/ocfs2/dlmfs/userdlm.c 	if (level > lockres->l_blocking)
lockres           211 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_blocking = level;
lockres           213 fs/ocfs2/dlmfs/userdlm.c 	__user_dlm_queue_lockres(lockres);
lockres           214 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           216 fs/ocfs2/dlmfs/userdlm.c 	wake_up(&lockres->l_event);
lockres           221 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres = user_lksb_to_lock_res(lksb);
lockres           224 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_namelen, lockres->l_name, lockres->l_flags);
lockres           229 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           233 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_flags & USER_LOCK_IN_TEARDOWN
lockres           234 fs/ocfs2/dlmfs/userdlm.c 	    && !(lockres->l_flags & USER_LOCK_IN_CANCEL)) {
lockres           235 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_level = DLM_LOCK_IV;
lockres           240 fs/ocfs2/dlmfs/userdlm.c 		BUG_ON(!(lockres->l_flags & USER_LOCK_IN_CANCEL));
lockres           241 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_flags &= ~USER_LOCK_IN_CANCEL;
lockres           244 fs/ocfs2/dlmfs/userdlm.c 		BUG_ON(!(lockres->l_flags & USER_LOCK_IN_CANCEL));
lockres           246 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_requested = DLM_LOCK_IV; /* cancel an
lockres           249 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_flags &= ~USER_LOCK_IN_CANCEL;
lockres           252 fs/ocfs2/dlmfs/userdlm.c 		if (lockres->l_flags & USER_LOCK_BLOCKED)
lockres           253 fs/ocfs2/dlmfs/userdlm.c 			__user_dlm_queue_lockres(lockres);
lockres           256 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags &= ~USER_LOCK_BUSY;
lockres           258 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           260 fs/ocfs2/dlmfs/userdlm.c 	wake_up(&lockres->l_event);
lockres           278 fs/ocfs2/dlmfs/userdlm.c static inline void user_dlm_drop_inode_ref(struct user_lock_res *lockres)
lockres           281 fs/ocfs2/dlmfs/userdlm.c 	inode = user_dlm_inode_from_user_lockres(lockres);
lockres           288 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres =
lockres           291 fs/ocfs2/dlmfs/userdlm.c 		cluster_connection_from_user_lockres(lockres);
lockres           293 fs/ocfs2/dlmfs/userdlm.c 	mlog(0, "lockres %.*s\n", lockres->l_namelen, lockres->l_name);
lockres           295 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           297 fs/ocfs2/dlmfs/userdlm.c 	mlog_bug_on_msg(!(lockres->l_flags & USER_LOCK_QUEUED),
lockres           299 fs/ocfs2/dlmfs/userdlm.c 			lockres->l_namelen, lockres->l_name, lockres->l_flags);
lockres           303 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags &= ~USER_LOCK_QUEUED;
lockres           310 fs/ocfs2/dlmfs/userdlm.c 	if (!(lockres->l_flags & USER_LOCK_BLOCKED)) {
lockres           312 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name);
lockres           313 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           317 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_flags & USER_LOCK_IN_TEARDOWN) {
lockres           319 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name);
lockres           320 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           324 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_flags & USER_LOCK_BUSY) {
lockres           325 fs/ocfs2/dlmfs/userdlm.c 		if (lockres->l_flags & USER_LOCK_IN_CANCEL) {
lockres           327 fs/ocfs2/dlmfs/userdlm.c 			     lockres->l_namelen, lockres->l_name);
lockres           328 fs/ocfs2/dlmfs/userdlm.c 			spin_unlock(&lockres->l_lock);
lockres           332 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_flags |= USER_LOCK_IN_CANCEL;
lockres           333 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           335 fs/ocfs2/dlmfs/userdlm.c 		status = ocfs2_dlm_unlock(conn, &lockres->l_lksb,
lockres           338 fs/ocfs2/dlmfs/userdlm.c 			user_log_dlm_error("ocfs2_dlm_unlock", status, lockres);
lockres           345 fs/ocfs2/dlmfs/userdlm.c 	if ((lockres->l_blocking == DLM_LOCK_EX)
lockres           346 fs/ocfs2/dlmfs/userdlm.c 	    && (lockres->l_ex_holders || lockres->l_ro_holders)) {
lockres           347 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           349 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name,
lockres           350 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_ex_holders, lockres->l_ro_holders);
lockres           354 fs/ocfs2/dlmfs/userdlm.c 	if ((lockres->l_blocking == DLM_LOCK_PR)
lockres           355 fs/ocfs2/dlmfs/userdlm.c 	    && lockres->l_ex_holders) {
lockres           356 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           358 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name,
lockres           359 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_ex_holders);
lockres           364 fs/ocfs2/dlmfs/userdlm.c 	new_level = user_highest_compat_lock_level(lockres->l_blocking);
lockres           365 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_requested = new_level;
lockres           366 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags |= USER_LOCK_BUSY;
lockres           368 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_namelen, lockres->l_name, lockres->l_level, new_level);
lockres           369 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           372 fs/ocfs2/dlmfs/userdlm.c 	status = ocfs2_dlm_lock(conn, new_level, &lockres->l_lksb,
lockres           374 fs/ocfs2/dlmfs/userdlm.c 				lockres->l_name,
lockres           375 fs/ocfs2/dlmfs/userdlm.c 				lockres->l_namelen);
lockres           377 fs/ocfs2/dlmfs/userdlm.c 		user_log_dlm_error("ocfs2_dlm_lock", status, lockres);
lockres           378 fs/ocfs2/dlmfs/userdlm.c 		user_recover_from_dlm_error(lockres);
lockres           382 fs/ocfs2/dlmfs/userdlm.c 	user_dlm_drop_inode_ref(lockres);
lockres           385 fs/ocfs2/dlmfs/userdlm.c static inline void user_dlm_inc_holders(struct user_lock_res *lockres,
lockres           390 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_ex_holders++;
lockres           393 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_ro_holders++;
lockres           404 fs/ocfs2/dlmfs/userdlm.c user_may_continue_on_blocked_lock(struct user_lock_res *lockres,
lockres           407 fs/ocfs2/dlmfs/userdlm.c 	BUG_ON(!(lockres->l_flags & USER_LOCK_BLOCKED));
lockres           409 fs/ocfs2/dlmfs/userdlm.c 	return wanted <= user_highest_compat_lock_level(lockres->l_blocking);
lockres           412 fs/ocfs2/dlmfs/userdlm.c int user_dlm_cluster_lock(struct user_lock_res *lockres,
lockres           418 fs/ocfs2/dlmfs/userdlm.c 		cluster_connection_from_user_lockres(lockres);
lockres           423 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name);
lockres           429 fs/ocfs2/dlmfs/userdlm.c 	     lockres->l_namelen, lockres->l_name, level, lkm_flags);
lockres           437 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           442 fs/ocfs2/dlmfs/userdlm.c 	if ((lockres->l_flags & USER_LOCK_BUSY) &&
lockres           443 fs/ocfs2/dlmfs/userdlm.c 	    (level > lockres->l_level)) {
lockres           446 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           448 fs/ocfs2/dlmfs/userdlm.c 		user_wait_on_busy_lock(lockres);
lockres           452 fs/ocfs2/dlmfs/userdlm.c 	if ((lockres->l_flags & USER_LOCK_BLOCKED) &&
lockres           453 fs/ocfs2/dlmfs/userdlm.c 	    (!user_may_continue_on_blocked_lock(lockres, level))) {
lockres           456 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           458 fs/ocfs2/dlmfs/userdlm.c 		user_wait_on_blocked_lock(lockres);
lockres           462 fs/ocfs2/dlmfs/userdlm.c 	if (level > lockres->l_level) {
lockres           464 fs/ocfs2/dlmfs/userdlm.c 		if (lockres->l_level != DLM_LOCK_IV)
lockres           467 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_requested = level;
lockres           468 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_flags |= USER_LOCK_BUSY;
lockres           469 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           475 fs/ocfs2/dlmfs/userdlm.c 		status = ocfs2_dlm_lock(conn, level, &lockres->l_lksb,
lockres           476 fs/ocfs2/dlmfs/userdlm.c 					local_flags, lockres->l_name,
lockres           477 fs/ocfs2/dlmfs/userdlm.c 					lockres->l_namelen);
lockres           482 fs/ocfs2/dlmfs/userdlm.c 						   status, lockres);
lockres           483 fs/ocfs2/dlmfs/userdlm.c 			user_recover_from_dlm_error(lockres);
lockres           487 fs/ocfs2/dlmfs/userdlm.c 		user_wait_on_busy_lock(lockres);
lockres           491 fs/ocfs2/dlmfs/userdlm.c 	user_dlm_inc_holders(lockres, level);
lockres           492 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           499 fs/ocfs2/dlmfs/userdlm.c static inline void user_dlm_dec_holders(struct user_lock_res *lockres,
lockres           504 fs/ocfs2/dlmfs/userdlm.c 		BUG_ON(!lockres->l_ex_holders);
lockres           505 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_ex_holders--;
lockres           508 fs/ocfs2/dlmfs/userdlm.c 		BUG_ON(!lockres->l_ro_holders);
lockres           509 fs/ocfs2/dlmfs/userdlm.c 		lockres->l_ro_holders--;
lockres           516 fs/ocfs2/dlmfs/userdlm.c void user_dlm_cluster_unlock(struct user_lock_res *lockres,
lockres           522 fs/ocfs2/dlmfs/userdlm.c 		     lockres->l_namelen, lockres->l_name);
lockres           526 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           527 fs/ocfs2/dlmfs/userdlm.c 	user_dlm_dec_holders(lockres, level);
lockres           528 fs/ocfs2/dlmfs/userdlm.c 	__user_dlm_cond_queue_lockres(lockres);
lockres           529 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           536 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres = &DLMFS_I(inode)->ip_lockres;
lockres           541 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           543 fs/ocfs2/dlmfs/userdlm.c 	BUG_ON(lockres->l_level < DLM_LOCK_EX);
lockres           544 fs/ocfs2/dlmfs/userdlm.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres           547 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           554 fs/ocfs2/dlmfs/userdlm.c 	struct user_lock_res *lockres = &DLMFS_I(inode)->ip_lockres;
lockres           560 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           562 fs/ocfs2/dlmfs/userdlm.c 	BUG_ON(lockres->l_level < DLM_LOCK_PR);
lockres           563 fs/ocfs2/dlmfs/userdlm.c 	if (ocfs2_dlm_lvb_valid(&lockres->l_lksb)) {
lockres           564 fs/ocfs2/dlmfs/userdlm.c 		lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres           569 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           573 fs/ocfs2/dlmfs/userdlm.c void user_dlm_lock_res_init(struct user_lock_res *lockres,
lockres           576 fs/ocfs2/dlmfs/userdlm.c 	memset(lockres, 0, sizeof(*lockres));
lockres           578 fs/ocfs2/dlmfs/userdlm.c 	spin_lock_init(&lockres->l_lock);
lockres           579 fs/ocfs2/dlmfs/userdlm.c 	init_waitqueue_head(&lockres->l_event);
lockres           580 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_level = DLM_LOCK_IV;
lockres           581 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_requested = DLM_LOCK_IV;
lockres           582 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_blocking = DLM_LOCK_IV;
lockres           587 fs/ocfs2/dlmfs/userdlm.c 	memcpy(lockres->l_name,
lockres           590 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_namelen = dentry->d_name.len;
lockres           593 fs/ocfs2/dlmfs/userdlm.c int user_dlm_destroy_lock(struct user_lock_res *lockres)
lockres           597 fs/ocfs2/dlmfs/userdlm.c 		cluster_connection_from_user_lockres(lockres);
lockres           599 fs/ocfs2/dlmfs/userdlm.c 	mlog(ML_BASTS, "lockres %.*s\n", lockres->l_namelen, lockres->l_name);
lockres           601 fs/ocfs2/dlmfs/userdlm.c 	spin_lock(&lockres->l_lock);
lockres           602 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_flags & USER_LOCK_IN_TEARDOWN) {
lockres           603 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           607 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags |= USER_LOCK_IN_TEARDOWN;
lockres           609 fs/ocfs2/dlmfs/userdlm.c 	while (lockres->l_flags & USER_LOCK_BUSY) {
lockres           610 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           612 fs/ocfs2/dlmfs/userdlm.c 		user_wait_on_busy_lock(lockres);
lockres           614 fs/ocfs2/dlmfs/userdlm.c 		spin_lock(&lockres->l_lock);
lockres           617 fs/ocfs2/dlmfs/userdlm.c 	if (lockres->l_ro_holders || lockres->l_ex_holders) {
lockres           618 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           623 fs/ocfs2/dlmfs/userdlm.c 	if (!(lockres->l_flags & USER_LOCK_ATTACHED)) {
lockres           624 fs/ocfs2/dlmfs/userdlm.c 		spin_unlock(&lockres->l_lock);
lockres           628 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags &= ~USER_LOCK_ATTACHED;
lockres           629 fs/ocfs2/dlmfs/userdlm.c 	lockres->l_flags |= USER_LOCK_BUSY;
lockres           630 fs/ocfs2/dlmfs/userdlm.c 	spin_unlock(&lockres->l_lock);
lockres           632 fs/ocfs2/dlmfs/userdlm.c 	status = ocfs2_dlm_unlock(conn, &lockres->l_lksb, DLM_LKF_VALBLK);
lockres           634 fs/ocfs2/dlmfs/userdlm.c 		user_log_dlm_error("ocfs2_dlm_unlock", status, lockres);
lockres           638 fs/ocfs2/dlmfs/userdlm.c 	user_wait_on_busy_lock(lockres);
lockres            58 fs/ocfs2/dlmfs/userdlm.h void user_dlm_lock_res_init(struct user_lock_res *lockres,
lockres            60 fs/ocfs2/dlmfs/userdlm.h int user_dlm_destroy_lock(struct user_lock_res *lockres);
lockres            61 fs/ocfs2/dlmfs/userdlm.h int user_dlm_cluster_lock(struct user_lock_res *lockres,
lockres            64 fs/ocfs2/dlmfs/userdlm.h void user_dlm_cluster_unlock(struct user_lock_res *lockres,
lockres            59 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_dentry_osb(struct ocfs2_lock_res *lockres);
lockres            60 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_inode_osb(struct ocfs2_lock_res *lockres);
lockres            61 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_file_osb(struct ocfs2_lock_res *lockres);
lockres            62 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_qinfo_osb(struct ocfs2_lock_res *lockres);
lockres            89 fs/ocfs2/dlmglue.c static int ocfs2_check_meta_downconvert(struct ocfs2_lock_res *lockres,
lockres            91 fs/ocfs2/dlmglue.c static void ocfs2_set_meta_lvb(struct ocfs2_lock_res *lockres);
lockres            93 fs/ocfs2/dlmglue.c static int ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres,
lockres            96 fs/ocfs2/dlmglue.c static int ocfs2_dentry_convert_worker(struct ocfs2_lock_res *lockres,
lockres           100 fs/ocfs2/dlmglue.c 				     struct ocfs2_lock_res *lockres);
lockres           102 fs/ocfs2/dlmglue.c static void ocfs2_set_qinfo_lvb(struct ocfs2_lock_res *lockres);
lockres           104 fs/ocfs2/dlmglue.c static int ocfs2_check_refcount_downconvert(struct ocfs2_lock_res *lockres,
lockres           106 fs/ocfs2/dlmglue.c static int ocfs2_refcount_convert_worker(struct ocfs2_lock_res *lockres,
lockres           115 fs/ocfs2/dlmglue.c 				     struct ocfs2_lock_res *lockres)
lockres           117 fs/ocfs2/dlmglue.c 	struct ocfs2_meta_lvb *lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres           120 fs/ocfs2/dlmglue.c 	     lockres->l_name, function, line);
lockres           287 fs/ocfs2/dlmglue.c static inline int ocfs2_is_inode_lock(struct ocfs2_lock_res *lockres)
lockres           289 fs/ocfs2/dlmglue.c 	return lockres->l_type == OCFS2_LOCK_TYPE_META ||
lockres           290 fs/ocfs2/dlmglue.c 		lockres->l_type == OCFS2_LOCK_TYPE_RW ||
lockres           291 fs/ocfs2/dlmglue.c 		lockres->l_type == OCFS2_LOCK_TYPE_OPEN;
lockres           299 fs/ocfs2/dlmglue.c static inline struct inode *ocfs2_lock_res_inode(struct ocfs2_lock_res *lockres)
lockres           301 fs/ocfs2/dlmglue.c 	BUG_ON(!ocfs2_is_inode_lock(lockres));
lockres           303 fs/ocfs2/dlmglue.c 	return (struct inode *) lockres->l_priv;
lockres           306 fs/ocfs2/dlmglue.c static inline struct ocfs2_dentry_lock *ocfs2_lock_res_dl(struct ocfs2_lock_res *lockres)
lockres           308 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_type != OCFS2_LOCK_TYPE_DENTRY);
lockres           310 fs/ocfs2/dlmglue.c 	return (struct ocfs2_dentry_lock *)lockres->l_priv;
lockres           313 fs/ocfs2/dlmglue.c static inline struct ocfs2_mem_dqinfo *ocfs2_lock_res_qinfo(struct ocfs2_lock_res *lockres)
lockres           315 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_type != OCFS2_LOCK_TYPE_QINFO);
lockres           317 fs/ocfs2/dlmglue.c 	return (struct ocfs2_mem_dqinfo *)lockres->l_priv;
lockres           326 fs/ocfs2/dlmglue.c static inline struct ocfs2_super *ocfs2_get_lockres_osb(struct ocfs2_lock_res *lockres)
lockres           328 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->get_osb)
lockres           329 fs/ocfs2/dlmglue.c 		return lockres->l_ops->get_osb(lockres);
lockres           331 fs/ocfs2/dlmglue.c 	return (struct ocfs2_super *)lockres->l_priv;
lockres           335 fs/ocfs2/dlmglue.c 			     struct ocfs2_lock_res *lockres,
lockres           338 fs/ocfs2/dlmglue.c static inline int ocfs2_may_continue_on_blocked_lock(struct ocfs2_lock_res *lockres,
lockres           341 fs/ocfs2/dlmglue.c 				   struct ocfs2_lock_res *lockres,
lockres           344 fs/ocfs2/dlmglue.c 					struct ocfs2_lock_res *lockres,
lockres           347 fs/ocfs2/dlmglue.c 	__ocfs2_cluster_unlock(osb, lockres, level, _RET_IP_);
lockres           350 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres);
lockres           351 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres);
lockres           352 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres);
lockres           353 fs/ocfs2/dlmglue.c static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, int level);
lockres           355 fs/ocfs2/dlmglue.c 					struct ocfs2_lock_res *lockres);
lockres           356 fs/ocfs2/dlmglue.c static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres,
lockres           369 fs/ocfs2/dlmglue.c 					struct ocfs2_lock_res *lockres);
lockres           374 fs/ocfs2/dlmglue.c static unsigned int ocfs2_prepare_downconvert(struct ocfs2_lock_res *lockres,
lockres           377 fs/ocfs2/dlmglue.c 				  struct ocfs2_lock_res *lockres,
lockres           382 fs/ocfs2/dlmglue.c 				        struct ocfs2_lock_res *lockres);
lockres           384 fs/ocfs2/dlmglue.c 				struct ocfs2_lock_res *lockres);
lockres           468 fs/ocfs2/dlmglue.c static inline void ocfs2_track_lock_refresh(struct ocfs2_lock_res *lockres)
lockres           470 fs/ocfs2/dlmglue.c 	lockres->l_lock_refresh++;
lockres           473 fs/ocfs2/dlmglue.c static inline void ocfs2_track_lock_wait(struct ocfs2_lock_res *lockres)
lockres           477 fs/ocfs2/dlmglue.c 	if (list_empty(&lockres->l_mask_waiters)) {
lockres           478 fs/ocfs2/dlmglue.c 		lockres->l_lock_wait = 0;
lockres           482 fs/ocfs2/dlmglue.c 	mw = list_first_entry(&lockres->l_mask_waiters,
lockres           484 fs/ocfs2/dlmglue.c 	lockres->l_lock_wait =
lockres           500 fs/ocfs2/dlmglue.c static inline void ocfs2_track_lock_refresh(struct ocfs2_lock_res *lockres)
lockres           503 fs/ocfs2/dlmglue.c static inline void ocfs2_track_lock_wait(struct ocfs2_lock_res *lockres)
lockres           580 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_inode_osb(struct ocfs2_lock_res *lockres)
lockres           582 fs/ocfs2/dlmglue.c 	struct inode *inode = ocfs2_lock_res_inode(lockres);
lockres           587 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_qinfo_osb(struct ocfs2_lock_res *lockres)
lockres           589 fs/ocfs2/dlmglue.c 	struct ocfs2_mem_dqinfo *info = lockres->l_priv;
lockres           594 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_file_osb(struct ocfs2_lock_res *lockres)
lockres           596 fs/ocfs2/dlmglue.c 	struct ocfs2_file_private *fp = lockres->l_priv;
lockres           601 fs/ocfs2/dlmglue.c static __u64 ocfs2_get_dentry_lock_ino(struct ocfs2_lock_res *lockres)
lockres           605 fs/ocfs2/dlmglue.c 	memcpy(&inode_blkno_be, &lockres->l_name[OCFS2_DENTRY_LOCK_INO_START],
lockres           611 fs/ocfs2/dlmglue.c static struct ocfs2_super *ocfs2_get_dentry_osb(struct ocfs2_lock_res *lockres)
lockres           613 fs/ocfs2/dlmglue.c 	struct ocfs2_dentry_lock *dl = lockres->l_priv;
lockres           624 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &dl->dl_lockres;
lockres           626 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_once(lockres);
lockres           643 fs/ocfs2/dlmglue.c 	len = snprintf(lockres->l_name, OCFS2_DENTRY_LOCK_INO_START,
lockres           650 fs/ocfs2/dlmglue.c 	memcpy(&lockres->l_name[OCFS2_DENTRY_LOCK_INO_START], &inode_blkno_be,
lockres           653 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_common(OCFS2_SB(inode->i_sb), lockres,
lockres           694 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_trim_fs_lockres;
lockres           699 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_once(lockres);
lockres           700 fs/ocfs2/dlmglue.c 	ocfs2_build_lock_name(OCFS2_LOCK_TYPE_TRIM_FS, 0, 0, lockres->l_name);
lockres           701 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_common(osb, lockres, OCFS2_LOCK_TYPE_TRIM_FS,
lockres           707 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_trim_fs_lockres;
lockres           709 fs/ocfs2/dlmglue.c 	ocfs2_simple_drop_lockres(osb, lockres);
lockres           710 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_free(lockres);
lockres           724 fs/ocfs2/dlmglue.c void ocfs2_file_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           730 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_once(lockres);
lockres           732 fs/ocfs2/dlmglue.c 			      inode->i_generation, lockres->l_name);
lockres           733 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_common(OCFS2_SB(inode->i_sb), lockres,
lockres           736 fs/ocfs2/dlmglue.c 	lockres->l_flags |= OCFS2_LOCK_NOCACHE;
lockres           739 fs/ocfs2/dlmglue.c void ocfs2_qinfo_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           742 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_once(lockres);
lockres           744 fs/ocfs2/dlmglue.c 			      0, lockres->l_name);
lockres           745 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_common(OCFS2_SB(info->dqi_gi.dqi_sb), lockres,
lockres           750 fs/ocfs2/dlmglue.c void ocfs2_refcount_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           754 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_once(lockres);
lockres           756 fs/ocfs2/dlmglue.c 			      generation, lockres->l_name);
lockres           757 fs/ocfs2/dlmglue.c 	ocfs2_lock_res_init_common(osb, lockres, OCFS2_LOCK_TYPE_REFCOUNT,
lockres           794 fs/ocfs2/dlmglue.c static inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
lockres           800 fs/ocfs2/dlmglue.c 	spin_lock(&lockres->l_lock);
lockres           801 fs/ocfs2/dlmglue.c 	list_add_tail(&oh->oh_list, &lockres->l_holders);
lockres           802 fs/ocfs2/dlmglue.c 	spin_unlock(&lockres->l_lock);
lockres           806 fs/ocfs2/dlmglue.c ocfs2_pid_holder(struct ocfs2_lock_res *lockres,
lockres           811 fs/ocfs2/dlmglue.c 	spin_lock(&lockres->l_lock);
lockres           812 fs/ocfs2/dlmglue.c 	list_for_each_entry(oh, &lockres->l_holders, oh_list) {
lockres           814 fs/ocfs2/dlmglue.c 			spin_unlock(&lockres->l_lock);
lockres           818 fs/ocfs2/dlmglue.c 	spin_unlock(&lockres->l_lock);
lockres           822 fs/ocfs2/dlmglue.c static inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
lockres           825 fs/ocfs2/dlmglue.c 	spin_lock(&lockres->l_lock);
lockres           827 fs/ocfs2/dlmglue.c 	spin_unlock(&lockres->l_lock);
lockres           833 fs/ocfs2/dlmglue.c static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres,
lockres           836 fs/ocfs2/dlmglue.c 	BUG_ON(!lockres);
lockres           840 fs/ocfs2/dlmglue.c 		lockres->l_ex_holders++;
lockres           843 fs/ocfs2/dlmglue.c 		lockres->l_ro_holders++;
lockres           850 fs/ocfs2/dlmglue.c static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres,
lockres           853 fs/ocfs2/dlmglue.c 	BUG_ON(!lockres);
lockres           857 fs/ocfs2/dlmglue.c 		BUG_ON(!lockres->l_ex_holders);
lockres           858 fs/ocfs2/dlmglue.c 		lockres->l_ex_holders--;
lockres           861 fs/ocfs2/dlmglue.c 		BUG_ON(!lockres->l_ro_holders);
lockres           862 fs/ocfs2/dlmglue.c 		lockres->l_ro_holders--;
lockres           883 fs/ocfs2/dlmglue.c static void lockres_set_flags(struct ocfs2_lock_res *lockres,
lockres           888 fs/ocfs2/dlmglue.c  	assert_spin_locked(&lockres->l_lock);
lockres           890 fs/ocfs2/dlmglue.c 	lockres->l_flags = newflags;
lockres           892 fs/ocfs2/dlmglue.c 	list_for_each_entry_safe(mw, tmp, &lockres->l_mask_waiters, mw_item) {
lockres           893 fs/ocfs2/dlmglue.c 		if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal)
lockres           899 fs/ocfs2/dlmglue.c 		ocfs2_track_lock_wait(lockres);
lockres           902 fs/ocfs2/dlmglue.c static void lockres_or_flags(struct ocfs2_lock_res *lockres, unsigned long or)
lockres           904 fs/ocfs2/dlmglue.c 	lockres_set_flags(lockres, lockres->l_flags | or);
lockres           906 fs/ocfs2/dlmglue.c static void lockres_clear_flags(struct ocfs2_lock_res *lockres,
lockres           909 fs/ocfs2/dlmglue.c 	lockres_set_flags(lockres, lockres->l_flags & ~clear);
lockres           912 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres)
lockres           914 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY));
lockres           915 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED));
lockres           916 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED));
lockres           917 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_blocking <= DLM_LOCK_NL);
lockres           919 fs/ocfs2/dlmglue.c 	lockres->l_level = lockres->l_requested;
lockres           920 fs/ocfs2/dlmglue.c 	if (lockres->l_level <=
lockres           921 fs/ocfs2/dlmglue.c 	    ocfs2_highest_compat_lock_level(lockres->l_blocking)) {
lockres           922 fs/ocfs2/dlmglue.c 		lockres->l_blocking = DLM_LOCK_NL;
lockres           923 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED);
lockres           925 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres           928 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres)
lockres           930 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY));
lockres           931 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_ATTACHED));
lockres           937 fs/ocfs2/dlmglue.c 	if (lockres->l_level == DLM_LOCK_NL &&
lockres           938 fs/ocfs2/dlmglue.c 	    lockres->l_ops->flags & LOCK_TYPE_REQUIRES_REFRESH)
lockres           939 fs/ocfs2/dlmglue.c 		lockres_or_flags(lockres, OCFS2_LOCK_NEEDS_REFRESH);
lockres           941 fs/ocfs2/dlmglue.c 	lockres->l_level = lockres->l_requested;
lockres           950 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_NONBLOCK_FINISHED))
lockres           951 fs/ocfs2/dlmglue.c 		lockres_or_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING);
lockres           953 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_NONBLOCK_FINISHED);
lockres           955 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres           958 fs/ocfs2/dlmglue.c static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres)
lockres           960 fs/ocfs2/dlmglue.c 	BUG_ON((!(lockres->l_flags & OCFS2_LOCK_BUSY)));
lockres           961 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_flags & OCFS2_LOCK_ATTACHED);
lockres           963 fs/ocfs2/dlmglue.c 	if (lockres->l_requested > DLM_LOCK_NL &&
lockres           964 fs/ocfs2/dlmglue.c 	    !(lockres->l_flags & OCFS2_LOCK_LOCAL) &&
lockres           965 fs/ocfs2/dlmglue.c 	    lockres->l_ops->flags & LOCK_TYPE_REQUIRES_REFRESH)
lockres           966 fs/ocfs2/dlmglue.c 		lockres_or_flags(lockres, OCFS2_LOCK_NEEDS_REFRESH);
lockres           968 fs/ocfs2/dlmglue.c 	lockres->l_level = lockres->l_requested;
lockres           969 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_ATTACHED);
lockres           970 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres           973 fs/ocfs2/dlmglue.c static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres,
lockres           978 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres           980 fs/ocfs2/dlmglue.c 	if (level > lockres->l_blocking) {
lockres           986 fs/ocfs2/dlmglue.c 		    ocfs2_highest_compat_lock_level(lockres->l_blocking))
lockres           989 fs/ocfs2/dlmglue.c 		lockres->l_blocking = level;
lockres           993 fs/ocfs2/dlmglue.c 	     lockres->l_name, level, lockres->l_level, lockres->l_blocking,
lockres           997 fs/ocfs2/dlmglue.c 		lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED);
lockres          1061 fs/ocfs2/dlmglue.c static void __lockres_clear_pending(struct ocfs2_lock_res *lockres,
lockres          1065 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          1071 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_PENDING) ||
lockres          1072 fs/ocfs2/dlmglue.c 	    (lockres->l_pending_gen != generation))
lockres          1075 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_PENDING);
lockres          1076 fs/ocfs2/dlmglue.c 	lockres->l_pending_gen++;
lockres          1082 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BLOCKED)
lockres          1087 fs/ocfs2/dlmglue.c static void lockres_clear_pending(struct ocfs2_lock_res *lockres,
lockres          1093 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1094 fs/ocfs2/dlmglue.c 	__lockres_clear_pending(lockres, generation, osb);
lockres          1095 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1098 fs/ocfs2/dlmglue.c static unsigned int lockres_set_pending(struct ocfs2_lock_res *lockres)
lockres          1100 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          1101 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BUSY));
lockres          1103 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_PENDING);
lockres          1105 fs/ocfs2/dlmglue.c 	return lockres->l_pending_gen;
lockres          1110 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb);
lockres          1111 fs/ocfs2/dlmglue.c 	struct ocfs2_super *osb = ocfs2_get_lockres_osb(lockres);
lockres          1118 fs/ocfs2/dlmglue.c 	     "type %s\n", lockres->l_name, level, lockres->l_level,
lockres          1119 fs/ocfs2/dlmglue.c 	     ocfs2_lock_type_string(lockres->l_type));
lockres          1125 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_NOCACHE)
lockres          1128 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1129 fs/ocfs2/dlmglue.c 	needs_downconvert = ocfs2_generic_handle_bast(lockres, level);
lockres          1131 fs/ocfs2/dlmglue.c 		ocfs2_schedule_blocked_lock(osb, lockres);
lockres          1132 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1134 fs/ocfs2/dlmglue.c 	wake_up(&lockres->l_event);
lockres          1141 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb);
lockres          1142 fs/ocfs2/dlmglue.c 	struct ocfs2_super *osb = ocfs2_get_lockres_osb(lockres);
lockres          1146 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1148 fs/ocfs2/dlmglue.c 	status = ocfs2_dlm_lock_status(&lockres->l_lksb);
lockres          1151 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres          1157 fs/ocfs2/dlmglue.c 		     lockres->l_name, status);
lockres          1158 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1163 fs/ocfs2/dlmglue.c 	     "level %d => %d\n", lockres->l_name, lockres->l_action,
lockres          1164 fs/ocfs2/dlmglue.c 	     lockres->l_unlock_action, lockres->l_level, lockres->l_requested);
lockres          1166 fs/ocfs2/dlmglue.c 	switch(lockres->l_action) {
lockres          1168 fs/ocfs2/dlmglue.c 		ocfs2_generic_handle_attach_action(lockres);
lockres          1169 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_LOCAL);
lockres          1172 fs/ocfs2/dlmglue.c 		ocfs2_generic_handle_convert_action(lockres);
lockres          1175 fs/ocfs2/dlmglue.c 		ocfs2_generic_handle_downconvert_action(lockres);
lockres          1180 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_action, lockres->l_flags,
lockres          1181 fs/ocfs2/dlmglue.c 		     lockres->l_unlock_action);
lockres          1187 fs/ocfs2/dlmglue.c 	lockres->l_action = OCFS2_AST_INVALID;
lockres          1190 fs/ocfs2/dlmglue.c 	if (lockres->l_unlock_action == OCFS2_UNLOCK_CANCEL_CONVERT)
lockres          1191 fs/ocfs2/dlmglue.c 		lockres->l_unlock_action = OCFS2_UNLOCK_INVALID;
lockres          1199 fs/ocfs2/dlmglue.c 	__lockres_clear_pending(lockres, lockres->l_pending_gen,  osb);
lockres          1201 fs/ocfs2/dlmglue.c 	wake_up(&lockres->l_event);
lockres          1202 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1207 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb);
lockres          1211 fs/ocfs2/dlmglue.c 	     lockres->l_name, lockres->l_unlock_action);
lockres          1213 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1216 fs/ocfs2/dlmglue.c 		     "unlock_action %d\n", error, lockres->l_name,
lockres          1217 fs/ocfs2/dlmglue.c 		     lockres->l_unlock_action);
lockres          1218 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1222 fs/ocfs2/dlmglue.c 	switch(lockres->l_unlock_action) {
lockres          1224 fs/ocfs2/dlmglue.c 		mlog(0, "Cancel convert success for %s\n", lockres->l_name);
lockres          1225 fs/ocfs2/dlmglue.c 		lockres->l_action = OCFS2_AST_INVALID;
lockres          1228 fs/ocfs2/dlmglue.c 		if (lockres->l_flags & OCFS2_LOCK_BLOCKED)
lockres          1229 fs/ocfs2/dlmglue.c 			ocfs2_wake_downconvert_thread(ocfs2_get_lockres_osb(lockres));
lockres          1232 fs/ocfs2/dlmglue.c 		lockres->l_level = DLM_LOCK_IV;
lockres          1238 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres          1239 fs/ocfs2/dlmglue.c 	lockres->l_unlock_action = OCFS2_UNLOCK_INVALID;
lockres          1240 fs/ocfs2/dlmglue.c 	wake_up(&lockres->l_event);
lockres          1241 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1282 fs/ocfs2/dlmglue.c static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres,
lockres          1287 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1288 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
lockres          1289 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING);
lockres          1291 fs/ocfs2/dlmglue.c 		lockres->l_action = OCFS2_AST_INVALID;
lockres          1293 fs/ocfs2/dlmglue.c 		lockres->l_unlock_action = OCFS2_UNLOCK_INVALID;
lockres          1294 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1296 fs/ocfs2/dlmglue.c 	wake_up(&lockres->l_event);
lockres          1304 fs/ocfs2/dlmglue.c 			     struct ocfs2_lock_res *lockres,
lockres          1312 fs/ocfs2/dlmglue.c 	mlog(0, "lock %s, level = %d, flags = %u\n", lockres->l_name, level,
lockres          1315 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1316 fs/ocfs2/dlmglue.c 	if ((lockres->l_flags & OCFS2_LOCK_ATTACHED) ||
lockres          1317 fs/ocfs2/dlmglue.c 	    (lockres->l_flags & OCFS2_LOCK_BUSY)) {
lockres          1318 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1322 fs/ocfs2/dlmglue.c 	lockres->l_action = OCFS2_AST_ATTACH;
lockres          1323 fs/ocfs2/dlmglue.c 	lockres->l_requested = level;
lockres          1324 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_BUSY);
lockres          1325 fs/ocfs2/dlmglue.c 	gen = lockres_set_pending(lockres);
lockres          1326 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1330 fs/ocfs2/dlmglue.c 			     &lockres->l_lksb,
lockres          1332 fs/ocfs2/dlmglue.c 			     lockres->l_name,
lockres          1334 fs/ocfs2/dlmglue.c 	lockres_clear_pending(lockres, gen, osb);
lockres          1336 fs/ocfs2/dlmglue.c 		ocfs2_log_dlm_error("ocfs2_dlm_lock", ret, lockres);
lockres          1337 fs/ocfs2/dlmglue.c 		ocfs2_recover_from_dlm_error(lockres, 1);
lockres          1340 fs/ocfs2/dlmglue.c 	mlog(0, "lock %s, return from ocfs2_dlm_lock\n", lockres->l_name);
lockres          1346 fs/ocfs2/dlmglue.c static inline int ocfs2_check_wait_flag(struct ocfs2_lock_res *lockres,
lockres          1352 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1353 fs/ocfs2/dlmglue.c 	ret = lockres->l_flags & flag;
lockres          1354 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1359 fs/ocfs2/dlmglue.c static inline void ocfs2_wait_on_busy_lock(struct ocfs2_lock_res *lockres)
lockres          1362 fs/ocfs2/dlmglue.c 	wait_event(lockres->l_event,
lockres          1363 fs/ocfs2/dlmglue.c 		   !ocfs2_check_wait_flag(lockres, OCFS2_LOCK_BUSY));
lockres          1366 fs/ocfs2/dlmglue.c static inline void ocfs2_wait_on_refreshing_lock(struct ocfs2_lock_res *lockres)
lockres          1369 fs/ocfs2/dlmglue.c 	wait_event(lockres->l_event,
lockres          1370 fs/ocfs2/dlmglue.c 		   !ocfs2_check_wait_flag(lockres, OCFS2_LOCK_REFRESHING));
lockres          1376 fs/ocfs2/dlmglue.c static inline int ocfs2_may_continue_on_blocked_lock(struct ocfs2_lock_res *lockres,
lockres          1379 fs/ocfs2/dlmglue.c 	BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED));
lockres          1381 fs/ocfs2/dlmglue.c 	return wanted <= ocfs2_highest_compat_lock_level(lockres->l_blocking);
lockres          1399 fs/ocfs2/dlmglue.c static void lockres_add_mask_waiter(struct ocfs2_lock_res *lockres,
lockres          1406 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          1408 fs/ocfs2/dlmglue.c 	list_add_tail(&mw->mw_item, &lockres->l_mask_waiters);
lockres          1411 fs/ocfs2/dlmglue.c 	ocfs2_track_lock_wait(lockres);
lockres          1416 fs/ocfs2/dlmglue.c static int __lockres_remove_mask_waiter(struct ocfs2_lock_res *lockres,
lockres          1421 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          1423 fs/ocfs2/dlmglue.c 		if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal)
lockres          1428 fs/ocfs2/dlmglue.c 		ocfs2_track_lock_wait(lockres);
lockres          1434 fs/ocfs2/dlmglue.c static int lockres_remove_mask_waiter(struct ocfs2_lock_res *lockres,
lockres          1440 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1441 fs/ocfs2/dlmglue.c 	ret = __lockres_remove_mask_waiter(lockres, mw);
lockres          1442 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1449 fs/ocfs2/dlmglue.c 					     struct ocfs2_lock_res *lockres)
lockres          1455 fs/ocfs2/dlmglue.c 		lockres_remove_mask_waiter(lockres, mw);
lockres          1464 fs/ocfs2/dlmglue.c 				struct ocfs2_lock_res *lockres,
lockres          1480 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_INITIALIZED)) {
lockres          1487 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB)
lockres          1493 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1500 fs/ocfs2/dlmglue.c 	mlog_bug_on_msg(lockres->l_flags & OCFS2_LOCK_FREEING,
lockres          1502 fs/ocfs2/dlmglue.c 			"0x%lx\n", lockres->l_name, lockres->l_flags);
lockres          1507 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BUSY &&
lockres          1508 fs/ocfs2/dlmglue.c 	    level > lockres->l_level) {
lockres          1511 fs/ocfs2/dlmglue.c 		lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0);
lockres          1516 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_UPCONVERT_FINISHING) {
lockres          1531 fs/ocfs2/dlmglue.c 		if (level <= lockres->l_level)
lockres          1535 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BLOCKED &&
lockres          1536 fs/ocfs2/dlmglue.c 	    !ocfs2_may_continue_on_blocked_lock(lockres, level)) {
lockres          1539 fs/ocfs2/dlmglue.c 		lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BLOCKED, 0);
lockres          1544 fs/ocfs2/dlmglue.c 	if (level > lockres->l_level) {
lockres          1552 fs/ocfs2/dlmglue.c 		if (lockres->l_action != OCFS2_AST_INVALID)
lockres          1554 fs/ocfs2/dlmglue.c 			     lockres->l_name, lockres->l_action);
lockres          1556 fs/ocfs2/dlmglue.c 		if (!(lockres->l_flags & OCFS2_LOCK_ATTACHED)) {
lockres          1557 fs/ocfs2/dlmglue.c 			lockres->l_action = OCFS2_AST_ATTACH;
lockres          1560 fs/ocfs2/dlmglue.c 			lockres->l_action = OCFS2_AST_CONVERT;
lockres          1564 fs/ocfs2/dlmglue.c 		lockres->l_requested = level;
lockres          1565 fs/ocfs2/dlmglue.c 		lockres_or_flags(lockres, OCFS2_LOCK_BUSY);
lockres          1566 fs/ocfs2/dlmglue.c 		gen = lockres_set_pending(lockres);
lockres          1567 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1573 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_level, level);
lockres          1578 fs/ocfs2/dlmglue.c 				     &lockres->l_lksb,
lockres          1580 fs/ocfs2/dlmglue.c 				     lockres->l_name,
lockres          1582 fs/ocfs2/dlmglue.c 		lockres_clear_pending(lockres, gen, osb);
lockres          1587 fs/ocfs2/dlmglue.c 						    ret, lockres);
lockres          1589 fs/ocfs2/dlmglue.c 			ocfs2_recover_from_dlm_error(lockres, 1);
lockres          1595 fs/ocfs2/dlmglue.c 		     lockres->l_name);
lockres          1607 fs/ocfs2/dlmglue.c 	ocfs2_inc_holders(lockres, level);
lockres          1611 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING);
lockres          1614 fs/ocfs2/dlmglue.c 	kick_dc = (lockres->l_flags & OCFS2_LOCK_BLOCKED);
lockres          1616 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1631 fs/ocfs2/dlmglue.c 		spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1632 fs/ocfs2/dlmglue.c 		if (__lockres_remove_mask_waiter(lockres, &mw)) {
lockres          1634 fs/ocfs2/dlmglue.c 				lockres_or_flags(lockres,
lockres          1636 fs/ocfs2/dlmglue.c 			spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1639 fs/ocfs2/dlmglue.c 			spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1649 fs/ocfs2/dlmglue.c 	ocfs2_update_lock_stats(lockres, level, &mw, ret);
lockres          1652 fs/ocfs2/dlmglue.c 	if (!ret && lockres->l_lockdep_map.key != NULL) {
lockres          1654 fs/ocfs2/dlmglue.c 			rwsem_acquire_read(&lockres->l_lockdep_map, l_subclass,
lockres          1658 fs/ocfs2/dlmglue.c 			rwsem_acquire(&lockres->l_lockdep_map, l_subclass,
lockres          1667 fs/ocfs2/dlmglue.c 				     struct ocfs2_lock_res *lockres,
lockres          1672 fs/ocfs2/dlmglue.c 	return __ocfs2_cluster_lock(osb, lockres, level, lkm_flags, arg_flags,
lockres          1678 fs/ocfs2/dlmglue.c 				   struct ocfs2_lock_res *lockres,
lockres          1684 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1685 fs/ocfs2/dlmglue.c 	ocfs2_dec_holders(lockres, level);
lockres          1686 fs/ocfs2/dlmglue.c 	ocfs2_downconvert_on_unlock(osb, lockres);
lockres          1687 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1689 fs/ocfs2/dlmglue.c 	if (lockres->l_lockdep_map.key != NULL)
lockres          1690 fs/ocfs2/dlmglue.c 		rwsem_release(&lockres->l_lockdep_map, 1, caller_ip);
lockres          1695 fs/ocfs2/dlmglue.c 				 struct ocfs2_lock_res *lockres,
lockres          1703 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1704 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_flags & OCFS2_LOCK_ATTACHED);
lockres          1705 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_LOCAL);
lockres          1706 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1708 fs/ocfs2/dlmglue.c 	return ocfs2_lock_create(osb, lockres, level, lkm_flags);
lockres          1761 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          1771 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_rw_lockres;
lockres          1775 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, 0, 0);
lockres          1785 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          1795 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_rw_lockres;
lockres          1799 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, DLM_LKF_NOQUEUE, 0);
lockres          1806 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_rw_lockres;
lockres          1814 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, level);
lockres          1823 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          1832 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_open_lockres;
lockres          1834 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, DLM_LOCK_PR, 0, 0);
lockres          1845 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          1861 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_open_lockres;
lockres          1871 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, DLM_LKF_NOQUEUE, 0);
lockres          1882 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_open_lockres;
lockres          1891 fs/ocfs2/dlmglue.c 	if(lockres->l_ro_holders)
lockres          1892 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, DLM_LOCK_PR);
lockres          1893 fs/ocfs2/dlmglue.c 	if(lockres->l_ex_holders)
lockres          1894 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, DLM_LOCK_EX);
lockres          1900 fs/ocfs2/dlmglue.c static int ocfs2_flock_handle_signal(struct ocfs2_lock_res *lockres,
lockres          1904 fs/ocfs2/dlmglue.c 	struct ocfs2_super *osb = ocfs2_get_lockres_osb(lockres);
lockres          1911 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1912 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BUSY) {
lockres          1913 fs/ocfs2/dlmglue.c 		ret = ocfs2_prepare_cancel_convert(osb, lockres);
lockres          1915 fs/ocfs2/dlmglue.c 			spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1916 fs/ocfs2/dlmglue.c 			ret = ocfs2_cancel_convert(osb, lockres);
lockres          1923 fs/ocfs2/dlmglue.c 		lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0);
lockres          1924 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1935 fs/ocfs2/dlmglue.c 	if (lockres->l_level == level)
lockres          1939 fs/ocfs2/dlmglue.c 	     lockres->l_flags, lockres->l_level, lockres->l_action);
lockres          1941 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1974 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &fp->fp_flock;
lockres          1980 fs/ocfs2/dlmglue.c 	if ((lockres->l_flags & OCFS2_LOCK_BUSY) ||
lockres          1981 fs/ocfs2/dlmglue.c 	    (lockres->l_level > DLM_LOCK_NL)) {
lockres          1984 fs/ocfs2/dlmglue.c 		     "level: %u\n", lockres->l_name, lockres->l_flags,
lockres          1985 fs/ocfs2/dlmglue.c 		     lockres->l_level);
lockres          1989 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          1990 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_ATTACHED)) {
lockres          1991 fs/ocfs2/dlmglue.c 		lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0);
lockres          1992 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          1998 fs/ocfs2/dlmglue.c 		ret = ocfs2_lock_create(osb, lockres, DLM_LOCK_NL, 0);
lockres          2009 fs/ocfs2/dlmglue.c 		spin_lock_irqsave(&lockres->l_lock, flags);
lockres          2012 fs/ocfs2/dlmglue.c 	lockres->l_action = OCFS2_AST_CONVERT;
lockres          2014 fs/ocfs2/dlmglue.c 	lockres->l_requested = level;
lockres          2015 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_BUSY);
lockres          2017 fs/ocfs2/dlmglue.c 	lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0);
lockres          2018 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2020 fs/ocfs2/dlmglue.c 	ret = ocfs2_dlm_lock(osb->cconn, level, &lockres->l_lksb, lkm_flags,
lockres          2021 fs/ocfs2/dlmglue.c 			     lockres->l_name, OCFS2_LOCK_ID_MAX_LEN - 1);
lockres          2024 fs/ocfs2/dlmglue.c 			ocfs2_log_dlm_error("ocfs2_dlm_lock", ret, lockres);
lockres          2028 fs/ocfs2/dlmglue.c 		ocfs2_recover_from_dlm_error(lockres, 1);
lockres          2029 fs/ocfs2/dlmglue.c 		lockres_remove_mask_waiter(lockres, &mw);
lockres          2033 fs/ocfs2/dlmglue.c 	ret = ocfs2_wait_for_mask_interruptible(&mw, lockres);
lockres          2050 fs/ocfs2/dlmglue.c 		ret = ocfs2_flock_handle_signal(lockres, level);
lockres          2051 fs/ocfs2/dlmglue.c 	} else if (!ret && (level > lockres->l_level)) {
lockres          2060 fs/ocfs2/dlmglue.c 	     lockres->l_name, ex, trylock, ret);
lockres          2070 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &fp->fp_flock;
lockres          2076 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_ATTACHED))
lockres          2079 fs/ocfs2/dlmglue.c 	if (lockres->l_level == DLM_LOCK_NL)
lockres          2083 fs/ocfs2/dlmglue.c 	     lockres->l_name, lockres->l_flags, lockres->l_level,
lockres          2084 fs/ocfs2/dlmglue.c 	     lockres->l_action);
lockres          2086 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          2090 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED);
lockres          2091 fs/ocfs2/dlmglue.c 	lockres->l_blocking = DLM_LOCK_EX;
lockres          2093 fs/ocfs2/dlmglue.c 	gen = ocfs2_prepare_downconvert(lockres, DLM_LOCK_NL);
lockres          2094 fs/ocfs2/dlmglue.c 	lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0);
lockres          2095 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2097 fs/ocfs2/dlmglue.c 	ret = ocfs2_downconvert_lock(osb, lockres, DLM_LOCK_NL, 0, gen);
lockres          2109 fs/ocfs2/dlmglue.c 					struct ocfs2_lock_res *lockres)
lockres          2116 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BLOCKED) {
lockres          2117 fs/ocfs2/dlmglue.c 		switch(lockres->l_blocking) {
lockres          2119 fs/ocfs2/dlmglue.c 			if (!lockres->l_ex_holders && !lockres->l_ro_holders)
lockres          2123 fs/ocfs2/dlmglue.c 			if (!lockres->l_ex_holders)
lockres          2158 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres;
lockres          2161 fs/ocfs2/dlmglue.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2191 fs/ocfs2/dlmglue.c 	mlog_meta_lvb(0, lockres);
lockres          2204 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres;
lockres          2207 fs/ocfs2/dlmglue.c 	mlog_meta_lvb(0, lockres);
lockres          2209 fs/ocfs2/dlmglue.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2240 fs/ocfs2/dlmglue.c 					      struct ocfs2_lock_res *lockres)
lockres          2242 fs/ocfs2/dlmglue.c 	struct ocfs2_meta_lvb *lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2244 fs/ocfs2/dlmglue.c 	if (ocfs2_dlm_lvb_valid(&lockres->l_lksb)
lockres          2258 fs/ocfs2/dlmglue.c static int ocfs2_should_refresh_lock_res(struct ocfs2_lock_res *lockres)
lockres          2264 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          2265 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH)) {
lockres          2266 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2270 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_REFRESHING) {
lockres          2271 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2273 fs/ocfs2/dlmglue.c 		ocfs2_wait_on_refreshing_lock(lockres);
lockres          2278 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_REFRESHING);
lockres          2279 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2289 fs/ocfs2/dlmglue.c static inline void ocfs2_complete_lock_res_refresh(struct ocfs2_lock_res *lockres,
lockres          2294 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          2295 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_REFRESHING);
lockres          2297 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_NEEDS_REFRESH);
lockres          2298 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          2300 fs/ocfs2/dlmglue.c 	wake_up(&lockres->l_event);
lockres          2309 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oi->ip_inode_lockres;
lockres          2327 fs/ocfs2/dlmglue.c 	if (!ocfs2_should_refresh_lock_res(lockres))
lockres          2336 fs/ocfs2/dlmglue.c 	if (ocfs2_meta_lvb_is_trustable(inode, lockres)) {
lockres          2374 fs/ocfs2/dlmglue.c 		ocfs2_track_lock_refresh(lockres);
lockres          2379 fs/ocfs2/dlmglue.c 	ocfs2_complete_lock_res_refresh(lockres, status);
lockres          2418 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = NULL;
lockres          2443 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_inode_lockres;
lockres          2449 fs/ocfs2/dlmglue.c 	status = __ocfs2_cluster_lock(osb, lockres, level, dlm_flags,
lockres          2476 fs/ocfs2/dlmglue.c 		if (lockres)
lockres          2477 fs/ocfs2/dlmglue.c 			ocfs2_complete_lock_res_refresh(lockres, 0);
lockres          2605 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_inode_lockres;
lockres          2614 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, level);
lockres          2664 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          2669 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_inode_lockres;
lockres          2670 fs/ocfs2/dlmglue.c 	tmp_oh = ocfs2_pid_holder(lockres, pid);
lockres          2685 fs/ocfs2/dlmglue.c 		ocfs2_add_holder(lockres, oh);
lockres          2720 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          2722 fs/ocfs2/dlmglue.c 	lockres = &OCFS2_I(inode)->ip_inode_lockres;
lockres          2730 fs/ocfs2/dlmglue.c 		ocfs2_remove_holder(lockres, oh);
lockres          2736 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          2746 fs/ocfs2/dlmglue.c 	lockres = &osb->osb_orphan_scan.os_lockres;
lockres          2747 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, DLM_LOCK_EX, 0, 0);
lockres          2751 fs/ocfs2/dlmglue.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2752 fs/ocfs2/dlmglue.c 	if (ocfs2_dlm_lvb_valid(&lockres->l_lksb) &&
lockres          2763 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          2767 fs/ocfs2/dlmglue.c 		lockres = &osb->osb_orphan_scan.os_lockres;
lockres          2768 fs/ocfs2/dlmglue.c 		lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2771 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, DLM_LOCK_EX);
lockres          2780 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_super_lockres;
lockres          2788 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, 0, 0);
lockres          2798 fs/ocfs2/dlmglue.c 	status = ocfs2_should_refresh_lock_res(lockres);
lockres          2802 fs/ocfs2/dlmglue.c 		ocfs2_complete_lock_res_refresh(lockres, status);
lockres          2805 fs/ocfs2/dlmglue.c 			ocfs2_cluster_unlock(osb, lockres, level);
lockres          2808 fs/ocfs2/dlmglue.c 		ocfs2_track_lock_refresh(lockres);
lockres          2818 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_super_lockres;
lockres          2821 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, level);
lockres          2827 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_rename_lockres;
lockres          2835 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, DLM_LOCK_EX, 0, 0);
lockres          2844 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_rename_lockres;
lockres          2847 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, DLM_LOCK_EX);
lockres          2853 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_nfs_sync_lockres;
lockres          2861 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, ex ? LKM_EXMODE : LKM_PRMODE,
lockres          2871 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_nfs_sync_lockres;
lockres          2874 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres,
lockres          2883 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_trim_fs_lockres;
lockres          2894 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, DLM_LOCK_EX,
lockres          2903 fs/ocfs2/dlmglue.c 		lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2904 fs/ocfs2/dlmglue.c 		if (ocfs2_dlm_lvb_valid(&lockres->l_lksb) &&
lockres          2923 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &osb->osb_trim_fs_lockres;
lockres          2929 fs/ocfs2/dlmglue.c 		lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          2939 fs/ocfs2/dlmglue.c 	ocfs2_cluster_unlock(osb, lockres, DLM_LOCK_EX);
lockres          3111 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = v;
lockres          3118 fs/ocfs2/dlmglue.c 	if (!lockres)
lockres          3122 fs/ocfs2/dlmglue.c 	if (!lockres->l_lock_wait && dlm_debug->d_filter_secs) {
lockres          3124 fs/ocfs2/dlmglue.c 		if (lockres->l_lock_prmode.ls_last >
lockres          3125 fs/ocfs2/dlmglue.c 		    lockres->l_lock_exmode.ls_last)
lockres          3126 fs/ocfs2/dlmglue.c 			last = lockres->l_lock_prmode.ls_last;
lockres          3128 fs/ocfs2/dlmglue.c 			last = lockres->l_lock_exmode.ls_last;
lockres          3142 fs/ocfs2/dlmglue.c 	if (lockres->l_type == OCFS2_LOCK_TYPE_DENTRY)
lockres          3144 fs/ocfs2/dlmglue.c 			   lockres->l_name,
lockres          3145 fs/ocfs2/dlmglue.c 			   (unsigned int)ocfs2_get_dentry_lock_ino(lockres));
lockres          3147 fs/ocfs2/dlmglue.c 		seq_printf(m, "%.*s\t", OCFS2_LOCK_ID_MAX_LEN, lockres->l_name);
lockres          3157 fs/ocfs2/dlmglue.c 		   lockres->l_level,
lockres          3158 fs/ocfs2/dlmglue.c 		   lockres->l_flags,
lockres          3159 fs/ocfs2/dlmglue.c 		   lockres->l_action,
lockres          3160 fs/ocfs2/dlmglue.c 		   lockres->l_unlock_action,
lockres          3161 fs/ocfs2/dlmglue.c 		   lockres->l_ro_holders,
lockres          3162 fs/ocfs2/dlmglue.c 		   lockres->l_ex_holders,
lockres          3163 fs/ocfs2/dlmglue.c 		   lockres->l_requested,
lockres          3164 fs/ocfs2/dlmglue.c 		   lockres->l_blocking);
lockres          3167 fs/ocfs2/dlmglue.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          3211 fs/ocfs2/dlmglue.c 		   lock_num_prmode(lockres),
lockres          3212 fs/ocfs2/dlmglue.c 		   lock_num_exmode(lockres),
lockres          3213 fs/ocfs2/dlmglue.c 		   lock_num_prmode_failed(lockres),
lockres          3214 fs/ocfs2/dlmglue.c 		   lock_num_exmode_failed(lockres),
lockres          3215 fs/ocfs2/dlmglue.c 		   lock_total_prmode(lockres),
lockres          3216 fs/ocfs2/dlmglue.c 		   lock_total_exmode(lockres),
lockres          3217 fs/ocfs2/dlmglue.c 		   lock_max_prmode(lockres),
lockres          3218 fs/ocfs2/dlmglue.c 		   lock_max_exmode(lockres),
lockres          3219 fs/ocfs2/dlmglue.c 		   lock_refresh(lockres),
lockres          3220 fs/ocfs2/dlmglue.c 		   lock_last_prmode(lockres),
lockres          3221 fs/ocfs2/dlmglue.c 		   lock_last_exmode(lockres),
lockres          3222 fs/ocfs2/dlmglue.c 		   lock_wait(lockres));
lockres          3385 fs/ocfs2/dlmglue.c 			   struct ocfs2_lock_res *lockres)
lockres          3392 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_INITIALIZED))
lockres          3395 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB)
lockres          3398 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3400 fs/ocfs2/dlmglue.c 	mlog_bug_on_msg(!(lockres->l_flags & OCFS2_LOCK_FREEING),
lockres          3402 fs/ocfs2/dlmglue.c 			lockres->l_name, lockres->l_flags);
lockres          3404 fs/ocfs2/dlmglue.c 	while (lockres->l_flags & OCFS2_LOCK_BUSY) {
lockres          3407 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_flags, lockres->l_action,
lockres          3408 fs/ocfs2/dlmglue.c 		     lockres->l_unlock_action);
lockres          3410 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3415 fs/ocfs2/dlmglue.c 		ocfs2_wait_on_busy_lock(lockres);
lockres          3417 fs/ocfs2/dlmglue.c 		spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3420 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB) {
lockres          3421 fs/ocfs2/dlmglue.c 		if (lockres->l_flags & OCFS2_LOCK_ATTACHED &&
lockres          3422 fs/ocfs2/dlmglue.c 		    lockres->l_level == DLM_LOCK_EX &&
lockres          3423 fs/ocfs2/dlmglue.c 		    !(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH))
lockres          3424 fs/ocfs2/dlmglue.c 			lockres->l_ops->set_lvb(lockres);
lockres          3427 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BUSY)
lockres          3429 fs/ocfs2/dlmglue.c 		     lockres->l_name);
lockres          3430 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BLOCKED)
lockres          3431 fs/ocfs2/dlmglue.c 		mlog(0, "destroying blocked lock: \"%s\"\n", lockres->l_name);
lockres          3433 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_ATTACHED)) {
lockres          3434 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3438 fs/ocfs2/dlmglue.c 	lockres_clear_flags(lockres, OCFS2_LOCK_ATTACHED);
lockres          3442 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_action != OCFS2_AST_INVALID);
lockres          3445 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_BUSY);
lockres          3446 fs/ocfs2/dlmglue.c 	lockres->l_unlock_action = OCFS2_UNLOCK_DROP_LOCK;
lockres          3447 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3449 fs/ocfs2/dlmglue.c 	mlog(0, "lock %s\n", lockres->l_name);
lockres          3451 fs/ocfs2/dlmglue.c 	ret = ocfs2_dlm_unlock(osb->cconn, &lockres->l_lksb, lkm_flags);
lockres          3453 fs/ocfs2/dlmglue.c 		ocfs2_log_dlm_error("ocfs2_dlm_unlock", ret, lockres);
lockres          3454 fs/ocfs2/dlmglue.c 		mlog(ML_ERROR, "lockres flags: %lu\n", lockres->l_flags);
lockres          3455 fs/ocfs2/dlmglue.c 		ocfs2_dlm_dump_lksb(&lockres->l_lksb);
lockres          3459 fs/ocfs2/dlmglue.c 	     lockres->l_name);
lockres          3461 fs/ocfs2/dlmglue.c 	ocfs2_wait_on_busy_lock(lockres);
lockres          3467 fs/ocfs2/dlmglue.c 				       struct ocfs2_lock_res *lockres);
lockres          3476 fs/ocfs2/dlmglue.c 				struct ocfs2_lock_res *lockres)
lockres          3484 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3485 fs/ocfs2/dlmglue.c 	lockres->l_flags |= OCFS2_LOCK_FREEING;
lockres          3486 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_QUEUED && current == osb->dc_task) {
lockres          3504 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3506 fs/ocfs2/dlmglue.c 		list_del_init(&lockres->l_blocked_list);
lockres          3515 fs/ocfs2/dlmglue.c 		WARN_ON_ONCE(lockres->l_ops->post_unlock);
lockres          3517 fs/ocfs2/dlmglue.c 		ocfs2_process_blocked_lock(osb, lockres);
lockres          3520 fs/ocfs2/dlmglue.c 	while (lockres->l_flags & OCFS2_LOCK_QUEUED) {
lockres          3521 fs/ocfs2/dlmglue.c 		lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_QUEUED, 0);
lockres          3522 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3524 fs/ocfs2/dlmglue.c 		mlog(0, "Waiting on lockres %s\n", lockres->l_name);
lockres          3530 fs/ocfs2/dlmglue.c 		spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3532 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3536 fs/ocfs2/dlmglue.c 			       struct ocfs2_lock_res *lockres)
lockres          3540 fs/ocfs2/dlmglue.c 	ocfs2_mark_lockres_freeing(osb, lockres);
lockres          3541 fs/ocfs2/dlmglue.c 	ret = ocfs2_drop_lock(osb, lockres);
lockres          3585 fs/ocfs2/dlmglue.c static unsigned int ocfs2_prepare_downconvert(struct ocfs2_lock_res *lockres,
lockres          3588 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          3590 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_blocking <= DLM_LOCK_NL);
lockres          3592 fs/ocfs2/dlmglue.c 	if (lockres->l_level <= new_level) {
lockres          3595 fs/ocfs2/dlmglue.c 		     "block %d, pgen %d\n", lockres->l_name, lockres->l_level,
lockres          3596 fs/ocfs2/dlmglue.c 		     new_level, list_empty(&lockres->l_blocked_list),
lockres          3597 fs/ocfs2/dlmglue.c 		     list_empty(&lockres->l_mask_waiters), lockres->l_type,
lockres          3598 fs/ocfs2/dlmglue.c 		     lockres->l_flags, lockres->l_ro_holders,
lockres          3599 fs/ocfs2/dlmglue.c 		     lockres->l_ex_holders, lockres->l_action,
lockres          3600 fs/ocfs2/dlmglue.c 		     lockres->l_unlock_action, lockres->l_requested,
lockres          3601 fs/ocfs2/dlmglue.c 		     lockres->l_blocking, lockres->l_pending_gen);
lockres          3606 fs/ocfs2/dlmglue.c 	     lockres->l_name, lockres->l_level, new_level, lockres->l_blocking);
lockres          3608 fs/ocfs2/dlmglue.c 	lockres->l_action = OCFS2_AST_DOWNCONVERT;
lockres          3609 fs/ocfs2/dlmglue.c 	lockres->l_requested = new_level;
lockres          3610 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_BUSY);
lockres          3611 fs/ocfs2/dlmglue.c 	return lockres_set_pending(lockres);
lockres          3615 fs/ocfs2/dlmglue.c 				  struct ocfs2_lock_res *lockres,
lockres          3623 fs/ocfs2/dlmglue.c 	mlog(ML_BASTS, "lockres %s, level %d => %d\n", lockres->l_name,
lockres          3624 fs/ocfs2/dlmglue.c 	     lockres->l_level, new_level);
lockres          3633 fs/ocfs2/dlmglue.c 	    lockres->l_ops->flags & LOCK_TYPE_USES_LVB)
lockres          3641 fs/ocfs2/dlmglue.c 			     &lockres->l_lksb,
lockres          3643 fs/ocfs2/dlmglue.c 			     lockres->l_name,
lockres          3645 fs/ocfs2/dlmglue.c 	lockres_clear_pending(lockres, generation, osb);
lockres          3647 fs/ocfs2/dlmglue.c 		ocfs2_log_dlm_error("ocfs2_dlm_lock", ret, lockres);
lockres          3648 fs/ocfs2/dlmglue.c 		ocfs2_recover_from_dlm_error(lockres, 1);
lockres          3659 fs/ocfs2/dlmglue.c 				        struct ocfs2_lock_res *lockres)
lockres          3661 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          3663 fs/ocfs2/dlmglue.c 	if (lockres->l_unlock_action == OCFS2_UNLOCK_CANCEL_CONVERT) {
lockres          3667 fs/ocfs2/dlmglue.c 		mlog(ML_BASTS, "lockres %s, skip convert\n", lockres->l_name);
lockres          3672 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_action != OCFS2_AST_CONVERT &&
lockres          3673 fs/ocfs2/dlmglue.c 	       lockres->l_action != OCFS2_AST_DOWNCONVERT);
lockres          3676 fs/ocfs2/dlmglue.c 	lockres->l_unlock_action = OCFS2_UNLOCK_CANCEL_CONVERT;
lockres          3678 fs/ocfs2/dlmglue.c 	mlog_bug_on_msg(!(lockres->l_flags & OCFS2_LOCK_BUSY),
lockres          3680 fs/ocfs2/dlmglue.c 			lockres->l_name, lockres->l_flags);
lockres          3682 fs/ocfs2/dlmglue.c 	mlog(ML_BASTS, "lockres %s\n", lockres->l_name);
lockres          3688 fs/ocfs2/dlmglue.c 				struct ocfs2_lock_res *lockres)
lockres          3692 fs/ocfs2/dlmglue.c 	ret = ocfs2_dlm_unlock(osb->cconn, &lockres->l_lksb,
lockres          3695 fs/ocfs2/dlmglue.c 		ocfs2_log_dlm_error("ocfs2_dlm_unlock", ret, lockres);
lockres          3696 fs/ocfs2/dlmglue.c 		ocfs2_recover_from_dlm_error(lockres, 0);
lockres          3699 fs/ocfs2/dlmglue.c 	mlog(ML_BASTS, "lockres %s\n", lockres->l_name);
lockres          3705 fs/ocfs2/dlmglue.c 			      struct ocfs2_lock_res *lockres,
lockres          3716 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3722 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_BLOCKED)) {
lockres          3723 fs/ocfs2/dlmglue.c 		BUG_ON(lockres->l_blocking != DLM_LOCK_NL);
lockres          3724 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3729 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_BUSY) {
lockres          3753 fs/ocfs2/dlmglue.c 		if (lockres->l_flags & OCFS2_LOCK_PENDING) {
lockres          3755 fs/ocfs2/dlmglue.c 			     lockres->l_name);
lockres          3760 fs/ocfs2/dlmglue.c 		ret = ocfs2_prepare_cancel_convert(osb, lockres);
lockres          3761 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3763 fs/ocfs2/dlmglue.c 			ret = ocfs2_cancel_convert(osb, lockres);
lockres          3779 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_UPCONVERT_FINISHING)
lockres          3787 fs/ocfs2/dlmglue.c 	if (lockres->l_level == DLM_LOCK_NL) {
lockres          3788 fs/ocfs2/dlmglue.c 		BUG_ON(lockres->l_ex_holders || lockres->l_ro_holders);
lockres          3789 fs/ocfs2/dlmglue.c 		mlog(ML_BASTS, "lockres %s, Aborting dc\n", lockres->l_name);
lockres          3790 fs/ocfs2/dlmglue.c 		lockres->l_blocking = DLM_LOCK_NL;
lockres          3791 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED);
lockres          3792 fs/ocfs2/dlmglue.c 		spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3798 fs/ocfs2/dlmglue.c 	if ((lockres->l_blocking == DLM_LOCK_EX)
lockres          3799 fs/ocfs2/dlmglue.c 	    && (lockres->l_ex_holders || lockres->l_ro_holders)) {
lockres          3801 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_ex_holders,
lockres          3802 fs/ocfs2/dlmglue.c 		     lockres->l_ro_holders);
lockres          3808 fs/ocfs2/dlmglue.c 	if (lockres->l_blocking == DLM_LOCK_PR &&
lockres          3809 fs/ocfs2/dlmglue.c 	    lockres->l_ex_holders) {
lockres          3811 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_ex_holders);
lockres          3819 fs/ocfs2/dlmglue.c 	if ((lockres->l_ops->flags & LOCK_TYPE_REQUIRES_REFRESH)
lockres          3820 fs/ocfs2/dlmglue.c 	    && (lockres->l_flags & OCFS2_LOCK_REFRESHING)) {
lockres          3822 fs/ocfs2/dlmglue.c 		     lockres->l_name);
lockres          3826 fs/ocfs2/dlmglue.c 	new_level = ocfs2_highest_compat_lock_level(lockres->l_blocking);
lockres          3828 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->check_downconvert
lockres          3829 fs/ocfs2/dlmglue.c 	    && !lockres->l_ops->check_downconvert(lockres, new_level)) {
lockres          3831 fs/ocfs2/dlmglue.c 		     lockres->l_name);
lockres          3838 fs/ocfs2/dlmglue.c 	if (!lockres->l_ops->downconvert_worker)
lockres          3845 fs/ocfs2/dlmglue.c 	blocking = lockres->l_blocking;
lockres          3846 fs/ocfs2/dlmglue.c 	level = lockres->l_level;
lockres          3847 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3849 fs/ocfs2/dlmglue.c 	ctl->unblock_action = lockres->l_ops->downconvert_worker(lockres, blocking);
lockres          3853 fs/ocfs2/dlmglue.c 		     lockres->l_name);
lockres          3857 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          3858 fs/ocfs2/dlmglue.c 	if ((blocking != lockres->l_blocking) || (level != lockres->l_level)) {
lockres          3862 fs/ocfs2/dlmglue.c 		     "Recheck\n", lockres->l_name, blocking,
lockres          3863 fs/ocfs2/dlmglue.c 		     lockres->l_blocking, level, lockres->l_level);
lockres          3870 fs/ocfs2/dlmglue.c 	if (lockres->l_ops->flags & LOCK_TYPE_USES_LVB) {
lockres          3871 fs/ocfs2/dlmglue.c 		if (lockres->l_level == DLM_LOCK_EX)
lockres          3880 fs/ocfs2/dlmglue.c 		if (set_lvb && !(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH))
lockres          3881 fs/ocfs2/dlmglue.c 			lockres->l_ops->set_lvb(lockres);
lockres          3884 fs/ocfs2/dlmglue.c 	gen = ocfs2_prepare_downconvert(lockres, new_level);
lockres          3885 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3886 fs/ocfs2/dlmglue.c 	ret = ocfs2_downconvert_lock(osb, lockres, new_level, set_lvb,
lockres          3895 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          3901 fs/ocfs2/dlmglue.c static int ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres,
lockres          3908 fs/ocfs2/dlmglue.c        	inode = ocfs2_lock_res_inode(lockres);
lockres          3953 fs/ocfs2/dlmglue.c 				 struct ocfs2_lock_res *lockres,
lockres          3959 fs/ocfs2/dlmglue.c 	BUG_ON(lockres->l_level != DLM_LOCK_EX && !checkpointed);
lockres          3968 fs/ocfs2/dlmglue.c static int ocfs2_check_meta_downconvert(struct ocfs2_lock_res *lockres,
lockres          3971 fs/ocfs2/dlmglue.c 	struct inode *inode = ocfs2_lock_res_inode(lockres);
lockres          3973 fs/ocfs2/dlmglue.c 	return ocfs2_ci_checkpointed(INODE_CACHE(inode), lockres, new_level);
lockres          3976 fs/ocfs2/dlmglue.c static void ocfs2_set_meta_lvb(struct ocfs2_lock_res *lockres)
lockres          3978 fs/ocfs2/dlmglue.c 	struct inode *inode = ocfs2_lock_res_inode(lockres);
lockres          3989 fs/ocfs2/dlmglue.c 				     struct ocfs2_lock_res *lockres)
lockres          3991 fs/ocfs2/dlmglue.c 	struct ocfs2_dentry_lock *dl = ocfs2_lock_res_dl(lockres);
lockres          4014 fs/ocfs2/dlmglue.c static int ocfs2_dentry_convert_worker(struct ocfs2_lock_res *lockres,
lockres          4017 fs/ocfs2/dlmglue.c 	struct ocfs2_dentry_lock *dl = ocfs2_lock_res_dl(lockres);
lockres          4049 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          4051 fs/ocfs2/dlmglue.c 	if (!(lockres->l_flags & OCFS2_LOCK_FREEING)
lockres          4057 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          4107 fs/ocfs2/dlmglue.c static int ocfs2_check_refcount_downconvert(struct ocfs2_lock_res *lockres,
lockres          4111 fs/ocfs2/dlmglue.c 				ocfs2_lock_res_refcount_tree(lockres);
lockres          4113 fs/ocfs2/dlmglue.c 	return ocfs2_ci_checkpointed(&tree->rf_ci, lockres, new_level);
lockres          4116 fs/ocfs2/dlmglue.c static int ocfs2_refcount_convert_worker(struct ocfs2_lock_res *lockres,
lockres          4120 fs/ocfs2/dlmglue.c 				ocfs2_lock_res_refcount_tree(lockres);
lockres          4127 fs/ocfs2/dlmglue.c static void ocfs2_set_qinfo_lvb(struct ocfs2_lock_res *lockres)
lockres          4130 fs/ocfs2/dlmglue.c 	struct ocfs2_mem_dqinfo *oinfo = ocfs2_lock_res_qinfo(lockres);
lockres          4134 fs/ocfs2/dlmglue.c 	lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          4146 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oinfo->dqi_gqlock;
lockres          4151 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, level);
lockres          4158 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oinfo->dqi_gqlock;
lockres          4159 fs/ocfs2/dlmglue.c 	struct ocfs2_qinfo_lvb *lvb = ocfs2_dlm_lvb(&lockres->l_lksb);
lockres          4164 fs/ocfs2/dlmglue.c 	if (ocfs2_dlm_lvb_valid(&lockres->l_lksb) &&
lockres          4190 fs/ocfs2/dlmglue.c 		ocfs2_track_lock_refresh(lockres);
lockres          4201 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &oinfo->dqi_gqlock;
lockres          4215 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, 0, 0);
lockres          4220 fs/ocfs2/dlmglue.c 	if (!ocfs2_should_refresh_lock_res(lockres))
lockres          4226 fs/ocfs2/dlmglue.c 	ocfs2_complete_lock_res_refresh(lockres, status);
lockres          4235 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &ref_tree->rf_lockres;
lockres          4236 fs/ocfs2/dlmglue.c 	struct ocfs2_super *osb = lockres->l_priv;
lockres          4245 fs/ocfs2/dlmglue.c 	status = ocfs2_cluster_lock(osb, lockres, level, 0, 0);
lockres          4255 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres = &ref_tree->rf_lockres;
lockres          4256 fs/ocfs2/dlmglue.c 	struct ocfs2_super *osb = lockres->l_priv;
lockres          4259 fs/ocfs2/dlmglue.c 		ocfs2_cluster_unlock(osb, lockres, level);
lockres          4263 fs/ocfs2/dlmglue.c 				       struct ocfs2_lock_res *lockres)
lockres          4273 fs/ocfs2/dlmglue.c 	BUG_ON(!lockres);
lockres          4274 fs/ocfs2/dlmglue.c 	BUG_ON(!lockres->l_ops);
lockres          4276 fs/ocfs2/dlmglue.c 	mlog(ML_BASTS, "lockres %s blocked\n", lockres->l_name);
lockres          4283 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          4284 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_FREEING)
lockres          4286 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          4288 fs/ocfs2/dlmglue.c 	status = ocfs2_unblock_lock(osb, lockres, &ctl);
lockres          4292 fs/ocfs2/dlmglue.c 	spin_lock_irqsave(&lockres->l_lock, flags);
lockres          4294 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_FREEING || !ctl.requeue) {
lockres          4295 fs/ocfs2/dlmglue.c 		lockres_clear_flags(lockres, OCFS2_LOCK_QUEUED);
lockres          4297 fs/ocfs2/dlmglue.c 		ocfs2_schedule_blocked_lock(osb, lockres);
lockres          4299 fs/ocfs2/dlmglue.c 	mlog(ML_BASTS, "lockres %s, requeue = %s.\n", lockres->l_name,
lockres          4301 fs/ocfs2/dlmglue.c 	spin_unlock_irqrestore(&lockres->l_lock, flags);
lockres          4304 fs/ocfs2/dlmglue.c 	    && lockres->l_ops->post_unlock)
lockres          4305 fs/ocfs2/dlmglue.c 		lockres->l_ops->post_unlock(osb, lockres);
lockres          4309 fs/ocfs2/dlmglue.c 					struct ocfs2_lock_res *lockres)
lockres          4313 fs/ocfs2/dlmglue.c 	assert_spin_locked(&lockres->l_lock);
lockres          4315 fs/ocfs2/dlmglue.c 	if (lockres->l_flags & OCFS2_LOCK_FREEING) {
lockres          4320 fs/ocfs2/dlmglue.c 		     lockres->l_name, lockres->l_flags);
lockres          4324 fs/ocfs2/dlmglue.c 	lockres_or_flags(lockres, OCFS2_LOCK_QUEUED);
lockres          4327 fs/ocfs2/dlmglue.c 	if (list_empty(&lockres->l_blocked_list)) {
lockres          4328 fs/ocfs2/dlmglue.c 		list_add_tail(&lockres->l_blocked_list,
lockres          4339 fs/ocfs2/dlmglue.c 	struct ocfs2_lock_res *lockres;
lockres          4354 fs/ocfs2/dlmglue.c 		lockres = list_entry(osb->blocked_lock_list.next,
lockres          4356 fs/ocfs2/dlmglue.c 		list_del_init(&lockres->l_blocked_list);
lockres          4363 fs/ocfs2/dlmglue.c 		ocfs2_process_blocked_lock(osb, lockres);
lockres           117 fs/ocfs2/dlmglue.h void ocfs2_file_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           120 fs/ocfs2/dlmglue.h void ocfs2_qinfo_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           122 fs/ocfs2/dlmglue.h void ocfs2_refcount_lock_res_init(struct ocfs2_lock_res *lockres,
lockres           188 fs/ocfs2/dlmglue.h 				struct ocfs2_lock_res *lockres);
lockres           190 fs/ocfs2/dlmglue.h 			       struct ocfs2_lock_res *lockres);
lockres            29 fs/ocfs2/locks.c 	struct ocfs2_lock_res *lockres = &fp->fp_flock;
lockres            38 fs/ocfs2/locks.c 	if (lockres->l_flags & OCFS2_LOCK_ATTACHED &&
lockres            39 fs/ocfs2/locks.c 	    lockres->l_level > LKM_NLMODE) {
lockres            43 fs/ocfs2/locks.c 		if (lockres->l_level == LKM_EXMODE)