Lines Matching defs:resource
165 static struct lv_info *lookup_info(const char *resource)
170 lvi = dm_hash_lookup(lv_hash, resource);
176 static void insert_info(const char *resource, struct lv_info *lvi)
179 dm_hash_insert(lv_hash, resource, lvi);
183 static void remove_info(const char *resource)
186 dm_hash_remove(lv_hash, resource);
193 static int get_current_lock(char *resource)
197 if ((lvi = lookup_info(resource)))
217 char *resource;
224 resource = dm_hash_get_key(lv_hash, v);
226 if ((status = sync_unlock(resource, lvi->lock_id)))
239 int hold_lock(char *resource, int mode, int flags)
248 lvi = lookup_info(resource);
258 sync_lock(resource, mode, flags, &lvi->lock_id);
274 status = sync_lock(resource, mode, flags, &lvi->lock_id);
281 insert_info(resource, lvi);
289 int hold_unlock(char *resource)
295 if (!(lvi = lookup_info(resource))) {
300 status = sync_unlock(resource, lvi->lock_id);
303 remove_info(resource);
321 static int do_activate_lv(char *resource, unsigned char lock_flags, int mode)
330 oldmode = get_current_lock(resource);
336 if (!lv_activation_filter(cmd, resource, &activate_lv))
350 status = hold_lock(resource, mode, LKF_NOQUEUE | (lock_flags & LCK_CONVERT?LKF_CONVERT:0));
365 if (!lv_info_by_lvid(cmd, resource, &lvi, 0, 0))
369 if (!lv_resume(cmd, resource))
373 if (!lv_activate(cmd, resource, exclusive))
380 static int do_resume_lv(char *resource)
385 oldmode = get_current_lock(resource);
391 if (!lv_resume_if_active(cmd, resource))
398 static int do_suspend_lv(char *resource)
404 oldmode = get_current_lock(resource);
411 if (!lv_info_by_lvid(cmd, resource, &lvi, 0, 0))
415 if (!lv_suspend_if_active(cmd, resource)) {
422 static int do_deactivate_lv(char *resource, unsigned char lock_flags)
428 oldmode = get_current_lock(resource);
434 if (!lv_deactivate(cmd, resource))
438 status = hold_unlock(resource);
446 const char *do_lock_query(char *resource)
451 mode = get_current_lock(resource);
461 DEBUGLOG("do_lock_query: resource '%s', mode %i (%s)\n", resource, mode, type ?: "?");
468 int do_lock_lv(unsigned char command, unsigned char lock_flags, char *resource)
472 DEBUGLOG("do_lock_lv: resource '%s', cmd = %s, flags = %s\n",
473 resource, decode_locking_cmd(command), decode_flags(lock_flags));
494 status = do_activate_lv(resource, lock_flags, LKM_EXMODE);
498 status = do_suspend_lv(resource);
505 status = do_resume_lv(resource);
511 status = do_activate_lv(resource, lock_flags, LKM_CRMODE);
515 status = do_deactivate_lv(resource, lock_flags);
541 int pre_lock_lv(unsigned char command, unsigned char lock_flags, char *resource)
548 DEBUGLOG("pre_lock_lv: resource '%s', cmd = %s, flags = %s\n",
549 resource, decode_locking_cmd(command), decode_flags(lock_flags));
551 if (hold_lock(resource, LKM_PWMODE, LKF_NOQUEUE| (lock_flags & LCK_CONVERT?LKF_CONVERT:0)))
559 char *resource)
568 ("post_lock_lv: resource '%s', cmd = %s, flags = %s\n",
569 resource, decode_locking_cmd(command), decode_flags(lock_flags));
572 oldmode = get_current_lock(resource);
577 status = lv_info_by_lvid(cmd, resource, &lvi, 0, 0);
583 if (hold_lock(resource, LKM_CRMODE, lock_flags & LCK_CONVERT?LKF_CONVERT:0))
586 if (hold_unlock(resource))