+static void mdt_dom_resource_prolong(struct ldlm_prolong_args *arg)
+{
+ struct ldlm_resource *res;
+ struct ldlm_lock *lock;
+
+ ENTRY;
+
+ res = ldlm_resource_get(arg->lpa_export->exp_obd->obd_namespace, NULL,
+ &arg->lpa_resid, LDLM_EXTENT, 0);
+ if (IS_ERR(res)) {
+ CDEBUG(D_DLMTRACE,
+ "Failed to get resource for resid %llu/%llu\n",
+ arg->lpa_resid.name[0], arg->lpa_resid.name[1]);
+ RETURN_EXIT;
+ }
+
+ lock_res(res);
+ list_for_each_entry(lock, &res->lr_granted, l_res_link) {
+ if (ldlm_has_dom(lock)) {
+ LDLM_DEBUG(lock, "DOM lock to prolong ");
+ ldlm_lock_prolong_one(lock, arg);
+ break;
+ }
+ }
+ unlock_res(res);
+ ldlm_resource_putref(res);
+
+ EXIT;
+}
+