Lines Matching refs:res
91 struct dlm_lock_resource *res; in sync_ast() local
93 res = (struct dlm_lock_resource *) arg; in sync_ast()
94 complete(&res->completion); in sync_ast()
97 static int dlm_lock_sync(struct dlm_lock_resource *res, int mode) in dlm_lock_sync() argument
101 init_completion(&res->completion); in dlm_lock_sync()
102 ret = dlm_lock(res->ls, mode, &res->lksb, in dlm_lock_sync()
103 res->flags, res->name, strlen(res->name), in dlm_lock_sync()
104 0, sync_ast, res, res->bast); in dlm_lock_sync()
107 wait_for_completion(&res->completion); in dlm_lock_sync()
108 return res->lksb.sb_status; in dlm_lock_sync()
111 static int dlm_unlock_sync(struct dlm_lock_resource *res) in dlm_unlock_sync() argument
113 return dlm_lock_sync(res, DLM_LOCK_NL); in dlm_unlock_sync()
119 struct dlm_lock_resource *res = NULL; in lockres_init() local
123 res = kzalloc(sizeof(struct dlm_lock_resource), GFP_KERNEL); in lockres_init()
124 if (!res) in lockres_init()
126 res->ls = cinfo->lockspace; in lockres_init()
127 res->mddev = mddev; in lockres_init()
129 res->name = kzalloc(namelen + 1, GFP_KERNEL); in lockres_init()
130 if (!res->name) { in lockres_init()
134 strlcpy(res->name, name, namelen + 1); in lockres_init()
136 res->lksb.sb_lvbptr = kzalloc(LVB_SIZE, GFP_KERNEL); in lockres_init()
137 if (!res->lksb.sb_lvbptr) { in lockres_init()
141 res->flags = DLM_LKF_VALBLK; in lockres_init()
145 res->bast = bastfn; in lockres_init()
147 res->flags |= DLM_LKF_EXPEDITE; in lockres_init()
149 ret = dlm_lock_sync(res, DLM_LOCK_NL); in lockres_init()
154 res->flags &= ~DLM_LKF_EXPEDITE; in lockres_init()
155 res->flags |= DLM_LKF_CONVERT; in lockres_init()
157 return res; in lockres_init()
159 kfree(res->lksb.sb_lvbptr); in lockres_init()
160 kfree(res->name); in lockres_init()
161 kfree(res); in lockres_init()
165 static void lockres_free(struct dlm_lock_resource *res) in lockres_free() argument
167 if (!res) in lockres_free()
170 init_completion(&res->completion); in lockres_free()
171 dlm_unlock(res->ls, res->lksb.sb_lkid, 0, &res->lksb, res); in lockres_free()
172 wait_for_completion(&res->completion); in lockres_free()
174 kfree(res->name); in lockres_free()
175 kfree(res->lksb.sb_lvbptr); in lockres_free()
176 kfree(res); in lockres_free()
325 struct dlm_lock_resource *res = (struct dlm_lock_resource *)arg; in ack_bast() local
326 struct md_cluster_info *cinfo = res->mddev->cluster_info; in ack_bast()