* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
#ifndef _LUSTRE_LIB_H
#define _LUSTRE_LIB_H
+/** \defgroup lib lib
+ *
+ * @{
+ */
+
#include <libcfs/libcfs.h>
#include <lustre/lustre_idl.h>
#include <lustre_ver.h>
#error Unsupported operating system.
#endif
-/* prng.c */
-unsigned int ll_rand(void); /* returns a random 32-bit integer */
-void ll_srand(unsigned int, unsigned int); /* seed the generator */
-void ll_get_random_bytes(void *buf, int size);
-
/* target.c */
struct ptlrpc_request;
struct obd_export;
int target_pack_pool_reply(struct ptlrpc_request *req);
int target_handle_ping(struct ptlrpc_request *req);
void target_committed_to_req(struct ptlrpc_request *req);
-int target_set_info_rpc(struct obd_import *imp, int opcode,
- obd_count keylen, void *key,
- obd_count vallen, void *val,
- struct ptlrpc_request_set *set);
+int do_set_info_async(struct obd_import *imp,
+ int opcode, int version,
+ obd_count keylen, void *key,
+ obd_count vallen, void *val,
+ struct ptlrpc_request_set *set);
/* quotacheck callback, dqacq/dqrel callback handler */
int target_handle_qc_callback(struct ptlrpc_request *req);
* XXX nikita: some ptlrpc daemon threads have races of that sort.
*
*/
+static inline int back_to_sleep(void *arg)
+{
+ return 0;
+}
#define LWI_ON_SIGNAL_NOOP ((void (*)(void *))(-1))
__blocked = l_w_e_set_sigs(0); \
\
for (;;) { \
- cfs_set_current_state(CFS_TASK_INTERRUPTIBLE); \
+ unsigned __wstate; \
+ \
+ __wstate = info->lwi_on_signal != NULL && \
+ (__timeout == 0 || __allow_intr) ? \
+ CFS_TASK_INTERRUPTIBLE : CFS_TASK_UNINT; \
+ \
+ cfs_set_current_state(__wstate); \
\
if (condition) \
break; \
\
if (__timeout == 0) { \
- cfs_waitq_wait(&__wait, CFS_TASK_INTERRUPTIBLE); \
+ cfs_waitq_wait(&__wait, __wstate); \
} else { \
cfs_duration_t interval = info->lwi_interval? \
min_t(cfs_duration_t, \
info->lwi_interval,__timeout):\
__timeout; \
cfs_duration_t remaining = cfs_waitq_timedwait(&__wait,\
- CFS_TASK_INTERRUPTIBLE, \
+ __wstate, \
interval); \
__timeout = cfs_time_sub(__timeout, \
cfs_time_sub(interval, remaining));\
#define LIBLUSTRE_CLIENT (1)
#endif
+/** @} lib */
+
#endif /* _LUSTRE_LIB_H */