Lines Matching refs:res

94 	struct dlm_lock_resource *res;  in sync_ast()  local
96 res = arg; in sync_ast()
97 complete(&res->completion); in sync_ast()
100 static int dlm_lock_sync(struct dlm_lock_resource *res, int mode) in dlm_lock_sync() argument
104 ret = dlm_lock(res->ls, mode, &res->lksb, in dlm_lock_sync()
105 res->flags, res->name, strlen(res->name), in dlm_lock_sync()
106 0, sync_ast, res, res->bast); in dlm_lock_sync()
109 wait_for_completion(&res->completion); in dlm_lock_sync()
110 if (res->lksb.sb_status == 0) in dlm_lock_sync()
111 res->mode = mode; in dlm_lock_sync()
112 return res->lksb.sb_status; in dlm_lock_sync()
115 static int dlm_unlock_sync(struct dlm_lock_resource *res) in dlm_unlock_sync() argument
117 return dlm_lock_sync(res, DLM_LOCK_NL); in dlm_unlock_sync()
123 struct dlm_lock_resource *res = NULL; in lockres_init() local
127 res = kzalloc(sizeof(struct dlm_lock_resource), GFP_KERNEL); in lockres_init()
128 if (!res) in lockres_init()
130 init_completion(&res->completion); in lockres_init()
131 res->ls = cinfo->lockspace; in lockres_init()
132 res->mddev = mddev; in lockres_init()
133 res->mode = DLM_LOCK_IV; in lockres_init()
135 res->name = kzalloc(namelen + 1, GFP_KERNEL); in lockres_init()
136 if (!res->name) { in lockres_init()
140 strlcpy(res->name, name, namelen + 1); in lockres_init()
142 res->lksb.sb_lvbptr = kzalloc(LVB_SIZE, GFP_KERNEL); in lockres_init()
143 if (!res->lksb.sb_lvbptr) { in lockres_init()
147 res->flags = DLM_LKF_VALBLK; in lockres_init()
151 res->bast = bastfn; in lockres_init()
153 res->flags |= DLM_LKF_EXPEDITE; in lockres_init()
155 ret = dlm_lock_sync(res, DLM_LOCK_NL); in lockres_init()
160 res->flags &= ~DLM_LKF_EXPEDITE; in lockres_init()
161 res->flags |= DLM_LKF_CONVERT; in lockres_init()
163 return res; in lockres_init()
165 kfree(res->lksb.sb_lvbptr); in lockres_init()
166 kfree(res->name); in lockres_init()
167 kfree(res); in lockres_init()
171 static void lockres_free(struct dlm_lock_resource *res) in lockres_free() argument
175 if (!res) in lockres_free()
179 res->flags |= DLM_LKF_CANCEL; in lockres_free()
181 ret = dlm_unlock(res->ls, res->lksb.sb_lkid, 0, &res->lksb, res); in lockres_free()
183 pr_info("%s: failed to unlock %s return %d\n", __func__, res->name, ret); in lockres_free()
190 res->flags &= ~DLM_LKF_CANCEL; in lockres_free()
191 wait_for_completion(&res->completion); in lockres_free()
193 kfree(res->name); in lockres_free()
194 kfree(res->lksb.sb_lvbptr); in lockres_free()
195 kfree(res); in lockres_free()
352 struct dlm_lock_resource *res = arg; in ack_bast() local
353 struct md_cluster_info *cinfo = res->mddev->cluster_info; in ack_bast()