Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / include / lustre_lib.h
index 6489465..2b54888 100644 (file)
@@ -43,7 +43,6 @@
 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);
-void ll_generate_random_uuid(unsigned char uuid_out[16]);
 
 /* target.c */
 struct ptlrpc_request;
@@ -56,11 +55,12 @@ struct obd_export;
 
 void target_client_add_cb(struct obd_device *obd, __u64 transno, void *cb_data,
                           int error);
-int target_handle_connect(struct ptlrpc_request *req, svc_handler_t handler);
+int target_handle_connect(struct ptlrpc_request *req);
 int target_handle_disconnect(struct ptlrpc_request *req);
 void target_destroy_export(struct obd_export *exp);
 int target_handle_reconnect(struct lustre_handle *conn, struct obd_export *exp,
-                            struct obd_uuid *cluuid);
+                            struct obd_uuid *cluuid, int);
+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);
 
@@ -76,8 +76,11 @@ int target_handle_dqacq_callback(struct ptlrpc_request *req);
 void target_cancel_recovery_timer(struct obd_device *obd);
 
 #define OBD_RECOVERY_TIMEOUT (obd_timeout * 5 / 2) /* *waves hands* */
-void target_start_recovery_timer(struct obd_device *obd, svc_handler_t handler);
-void target_abort_recovery(void *data);
+#define OBD_RECOVERY_MAX_TIME (obd_timeout * 18) /* b13079 */
+void target_start_recovery_timer(struct obd_device *obd);
+int target_start_recovery_thread(struct obd_device *obd, 
+                                  svc_handler_t handler);
+void target_stop_recovery_thread(struct obd_device *obd);
 void target_cleanup_recovery(struct obd_device *obd);
 int target_queue_recovery_request(struct ptlrpc_request *req,
                                   struct obd_device *obd);
@@ -86,15 +89,16 @@ void target_send_reply(struct ptlrpc_request *req, int rc, int fail_id);
 
 /* client.c */
 
-int client_sanobd_setup(struct obd_device *obddev, obd_count len, void *buf);
+int client_sanobd_setup(struct obd_device *obddev, struct lustre_cfg* lcfg);
 struct client_obd *client_conn2cli(struct lustre_handle *conn);
 
-struct mdc_open_data;
+struct md_open_data;
 struct obd_client_handle {
-        struct lustre_handle och_fh;
-        struct llog_cookie och_cookie;
-        struct mdc_open_data *och_mod;
+        struct lustre_handle  och_fh;
+        struct lu_fid         och_fid;
+        struct md_open_data *och_mod;
         __u32 och_magic;
+        int och_flags;
 };
 #define OBD_CLIENT_HANDLE_MAGIC 0xd15ea5ed
 
@@ -132,37 +136,37 @@ struct obd_ioctl_data {
         struct obdo ioc_obdo1;
         struct obdo ioc_obdo2;
 
-        obd_size         ioc_count;
-        obd_off          ioc_offset;
-        __u32            ioc_dev;
-        __u32            ioc_command;
+        obd_size ioc_count;
+        obd_off  ioc_offset;
+        __u32    ioc_dev;
+        __u32    ioc_command;
 
         __u64 ioc_nid;
         __u32 ioc_nal;
         __u32 ioc_type;
 
         /* buffers the kernel will treat as user pointers */
-        __u32    ioc_plen1;
-        char    *ioc_pbuf1;
-        __u32    ioc_plen2;
-        char    *ioc_pbuf2;
+        __u32  ioc_plen1;
+        char  *ioc_pbuf1;
+        __u32  ioc_plen2;
+        char  *ioc_pbuf2;
 
         /* inline buffers for various arguments */
-        __u32    ioc_inllen1;
-        char    *ioc_inlbuf1;
-        __u32    ioc_inllen2;
-        char    *ioc_inlbuf2;
-        __u32    ioc_inllen3;
-        char    *ioc_inlbuf3;
-        __u32    ioc_inllen4;
-        char    *ioc_inlbuf4;
+        __u32  ioc_inllen1;
+        char  *ioc_inlbuf1;
+        __u32  ioc_inllen2;
+        char  *ioc_inlbuf2;
+        __u32  ioc_inllen3;
+        char  *ioc_inlbuf3;
+        __u32  ioc_inllen4;
+        char  *ioc_inlbuf4;
 
         char    ioc_bulk[0];
 };
 
 struct obd_ioctl_hdr {
-        __u32    ioc_len;
-        __u32    ioc_version;
+        __u32 ioc_len;
+        __u32 ioc_version;
 };
 
 static inline int obd_ioctl_packlen(struct obd_ioctl_data *data)
@@ -248,12 +252,12 @@ static inline int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf,
         data->ioc_version = OBD_IOCTL_VERSION;
 
         if (*pbuf && data->ioc_len > max)
-                return 1;
+                return -EINVAL;
         if (*pbuf == NULL) {
                 *pbuf = malloc(data->ioc_len);
         }
         if (!*pbuf)
-                return 1;
+                return -ENOMEM;
         overlay = (struct obd_ioctl_data *)*pbuf;
         memcpy(*pbuf, data, sizeof(*data));
 
@@ -267,7 +271,7 @@ static inline int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf,
         if (data->ioc_inlbuf4)
                 LOGL(data->ioc_inlbuf4, data->ioc_inllen4, ptr);
         if (obd_ioctl_is_invalid(overlay))
-                return 1;
+                return -EINVAL;
 
         return 0;
 }
@@ -453,8 +457,12 @@ static inline void obd_ioctl_freedata(char *buf, int len)
 #define OBD_IOC_SET_READONLY           _IOW ('f', 141, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_ABORT_RECOVERY         _IOR ('f', 142, OBD_IOC_DATA_TYPE)
 
+#define OBD_IOC_ROOT_SQUASH            _IOWR('f', 143, OBD_IOC_DATA_TYPE)
+
 #define OBD_GET_VERSION                _IOWR ('f', 144, OBD_IOC_DATA_TYPE)
 
+#define OBD_IOC_GSS_SUPPORT            _IOWR('f', 145, OBD_IOC_DATA_TYPE)
+
 #define OBD_IOC_CLOSE_UUID             _IOWR ('f', 147, OBD_IOC_DATA_TYPE)
 
 #define OBD_IOC_GETDEVICE              _IOWR ('f', 149, OBD_IOC_DATA_TYPE)
@@ -689,7 +697,7 @@ do {                                                                           \
 } while (0)
 
 #else /* !__KERNEL__ */
-#define __l_wait_event(wq, condition, info, ret, excl)                         \
+#define __l_wait_event(wq, condition, info, ret, excl)                  \
 do {                                                                    \
         long __timeout = info->lwi_timeout;                             \
         long __now;                                                     \
@@ -735,6 +743,7 @@ do {                                                                    \
 
 #endif /* __KERNEL__ */
 
+
 #define l_wait_event(wq, condition, info)                       \
 ({                                                              \
         int                 __ret;                              \
@@ -753,6 +762,15 @@ do {                                                                    \
         __ret;                                                  \
 })
 
+#define cfs_wait_event(wq, condition)                          \
+({                                                              \
+        int  __ret;                                                    \
+                                                                \
+        struct l_wait_info lwi = { 0 };                         \
+        l_wait_event(wq, condition, &lwi);                      \
+        __ret;                                                  \
+})
+
 #ifdef __KERNEL__
 #define LIBLUSTRE_CLIENT (0)
 #else