extern cfs_mem_cache_t *ldlm_lock_slab;
+#ifdef HAVE_SERVER_SUPPORT
static ldlm_processing_policy ldlm_processing_policy_table[] = {
[LDLM_PLAIN] ldlm_process_plain_lock,
[LDLM_EXTENT] ldlm_process_extent_lock,
-#ifdef __KERNEL__
+# ifdef __KERNEL__
[LDLM_FLOCK] ldlm_process_flock_lock,
-#endif
+# endif
[LDLM_IBITS] ldlm_process_inodebits_lock,
};
{
return ldlm_processing_policy_table[res->lr_type];
}
+#endif /* HAVE_SERVER_SUPPORT */
void ldlm_register_intent(struct ldlm_namespace *ns, ldlm_res_policy arg)
{
struct ldlm_lock *lock = *lockp;
struct ldlm_resource *res = lock->l_resource;
int local = ns_is_client(ldlm_res_to_ns(res));
+#ifdef HAVE_SERVER_SUPPORT
ldlm_processing_policy policy;
+#endif
ldlm_error_t rc = ELDLM_OK;
struct ldlm_interval *node = NULL;
ENTRY;
else
ldlm_grant_lock(lock, NULL);
GOTO(out, ELDLM_OK);
+#ifdef HAVE_SERVER_SUPPORT
} else if (*flags & LDLM_FL_REPLAY) {
if (*flags & LDLM_FL_BLOCK_CONV) {
ldlm_resource_add_lock(res, &res->lr_converting, lock);
policy = ldlm_processing_policy_table[res->lr_type];
policy(lock, flags, 1, &rc, NULL);
GOTO(out, rc);
+#else
+ } else {
+ CERROR("This is client-side-only module, cannot handle "
+ "LDLM_NAMESPACE_SERVER resource type lock.\n");
+ LBUG();
+ }
+#endif
+
out:
unlock_res_and_lock(lock);
if (node)
return rc;
}
+#ifdef HAVE_SERVER_SUPPORT
/* Must be called with namespace taken: queue is waiting or converting. */
int ldlm_reprocess_queue(struct ldlm_resource *res, cfs_list_t *queue,
cfs_list_t *work_list)
RETURN(rc);
}
+#endif
static int
ldlm_work_bl_ast_lock(cfs_list_t *tmp, struct ldlm_cb_set_arg *arg)
void ldlm_reprocess_all(struct ldlm_resource *res)
{
CFS_LIST_HEAD(rpc_list);
+
+#ifdef HAVE_SERVER_SUPPORT
int rc;
ENTRY;
-
/* Local lock trees don't get reprocessed. */
if (ns_is_client(ldlm_res_to_ns(res))) {
EXIT;
return;
}
- restart:
+restart:
lock_res(res);
rc = ldlm_reprocess_queue(res, &res->lr_converting, &rpc_list);
if (rc == LDLM_ITER_CONTINUE)
LASSERT(cfs_list_empty(&rpc_list));
goto restart;
}
+#else
+ ENTRY;
+ if (!ns_is_client(ldlm_res_to_ns(res))) {
+ CERROR("This is client-side-only module, cannot handle "
+ "LDLM_NAMESPACE_SERVER resource type lock.\n");
+ LBUG();
+ }
+#endif
EXIT;
}
struct ldlm_resource *res;
struct ldlm_namespace *ns;
int granted = 0;
- int old_mode, rc;
+ int old_mode;
struct sl_insert_point prev;
- ldlm_error_t err;
struct ldlm_interval *node;
ENTRY;
if (lock->l_completion_ast)
lock->l_completion_ast(lock, 0, NULL);
}
+#ifdef HAVE_SERVER_SUPPORT
} else {
+ int rc;
+ ldlm_error_t err;
int pflags = 0;
ldlm_processing_policy policy;
policy = ldlm_processing_policy_table[res->lr_type];
granted = 1;
}
}
+#else
+ } else {
+ CERROR("This is client-side-only module, cannot handle "
+ "LDLM_NAMESPACE_SERVER resource type lock.\n");
+ LBUG();
+ }
+#endif
unlock_res_and_lock(lock);
if (granted)