wait_queue_head_t l_waitq;
/**
- * Seconds. It will be updated if there is any activity related to
- * the lock, e.g. enqueue the lock or send blocking AST.
- */
- time64_t l_last_activity;
-
- /**
* Time, in nanoseconds, last used by e.g. being matched by lock match.
*/
ktime_t l_last_used;
/** Private storage for lock user. Opaque to LDLM. */
void *l_ast_data;
+
+ union {
+ /**
+ * Seconds. It will be updated if there is any activity related to
+ * the lock at client, e.g. enqueue the lock. For server it is the
+ * time when blocking ast was sent.
+ */
+ time64_t l_activity;
+ time64_t l_blast_sent;
+ };
+
/* separate ost_lvb used mostly by Data-on-MDT for now.
* It is introduced to don't mix with layout lock data. */
struct ost_lvb l_ost_lvb;