* state, it must wait for the lock.
* See state diagram for details.
*/
- CLS_INTRANSIT,
+ CLS_INTRANSIT,
/**
* Lock granted, not used.
*/
*/
struct list_head cll_inclosure;
/**
+ * Confict lock at queuing time.
+ */
+ struct cl_lock *cll_conflict;
+ /**
* A list of references to this lock, for debugging.
*/
struct lu_ref cll_reference;
* usual return values of lock state-machine methods, this can return
* -ESTALE to indicate that lock cannot be returned to the cache, and
* has to be re-initialized.
+ * unuse is a one-shot operation, so it must NOT return CLO_WAIT.
*
- * \see ccc_lock_unlock(), lov_lock_unlock(), osc_lock_unlock()
+ * \see ccc_lock_unuse(), lov_lock_unuse(), osc_lock_unuse()
*/
int (*clo_unuse)(const struct lu_env *env,
const struct cl_lock_slice *slice);
const char *scope, const void *source);
void cl_lock_user_add (const struct lu_env *env, struct cl_lock *lock);
int cl_lock_user_del (const struct lu_env *env, struct cl_lock *lock);
-int cl_lock_compatible(const struct cl_lock *lock1,
- const struct cl_lock *lock2);
enum cl_lock_state cl_lock_intransit(const struct lu_env *env,
struct cl_lock *lock);