X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_lib.h;h=2b548883bec27613d14224fca6c528e7ddcea1c1;hb=9a3d6c2ed76ba902158a101be5b3dce46ca8f630;hp=648946539c1dca744c2a62dfeda9d9aab966b511;hpb=46dcacd1f77e0d70727c3ef601f58f9f6cf0af46;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_lib.h b/lustre/include/lustre_lib.h index 6489465..2b54888 100644 --- a/lustre/include/lustre_lib.h +++ b/lustre/include/lustre_lib.h @@ -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