X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flustre_lib.h;h=99cd7352056c341c932b7dc56d778fb6b92a1b4d;hp=cdef911ecebaa0a482c96c9ef8965b7b6a90d8dc;hb=49c61548c35d67f34120fd64916a55fd20a6ab68;hpb=cdb698a1a036870b6c9d8e51f69809c558d4823a diff --git a/lustre/include/lustre_lib.h b/lustre/include/lustre_lib.h index cdef911..99cd735 100644 --- a/lustre/include/lustre_lib.h +++ b/lustre/include/lustre_lib.h @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,6 +26,8 @@ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -64,39 +64,37 @@ struct ptlrpc_request; struct obd_export; struct lu_target; +struct l_wait_info; #include #include #include +#ifdef HAVE_SERVER_SUPPORT void target_client_add_cb(struct obd_device *obd, __u64 transno, void *cb_data, int error); 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_pack_pool_reply(struct ptlrpc_request *req); int target_handle_ping(struct ptlrpc_request *req); void target_committed_to_req(struct ptlrpc_request *req); +void target_cancel_recovery_timer(struct obd_device *obd); +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); +int target_bulk_io(struct obd_export *exp, struct ptlrpc_bulk_desc *desc, + struct l_wait_info *lwi); +#endif + +int target_pack_pool_reply(struct ptlrpc_request *req); 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); -#ifdef HAVE_QUOTA_SUPPORT -int target_handle_dqacq_callback(struct ptlrpc_request *req); -#else -#define target_handle_dqacq_callback(req) ldlm_callback_reply(req, -ENOTSUPP) -#endif - #define OBD_RECOVERY_MAX_TIME (obd_timeout * 18) /* b13079 */ -void target_cancel_recovery_timer(struct obd_device *obd); -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); void target_send_reply(struct ptlrpc_request *req, int rc, int fail_id); /* client.c */ @@ -120,10 +118,10 @@ void statfs_unpack(cfs_kstatfs_t *sfs, struct obd_statfs *osfs); /* l_lock.c */ struct lustre_lock { - int l_depth; - cfs_task_t *l_owner; - cfs_semaphore_t l_sem; - cfs_spinlock_t l_spin; + int l_depth; + cfs_task_t *l_owner; + struct semaphore l_sem; + spinlock_t l_spin; }; void l_lock_init(struct lustre_lock *); @@ -132,6 +130,20 @@ void l_unlock(struct lustre_lock *); int l_has_lock(struct lustre_lock *); /* + * For md echo client + */ +enum md_echo_cmd { + ECHO_MD_CREATE = 1, /* Open/Create file on MDT */ + ECHO_MD_MKDIR = 2, /* Mkdir on MDT */ + ECHO_MD_DESTROY = 3, /* Unlink file on MDT */ + ECHO_MD_RMDIR = 4, /* Rmdir on MDT */ + ECHO_MD_LOOKUP = 5, /* Lookup on MDT */ + ECHO_MD_GETATTR = 6, /* Getattr on MDT */ + ECHO_MD_SETATTR = 7, /* Setattr on MDT */ + ECHO_MD_ALLOC_FID = 8, /* Get FIDs from MDT */ +}; + +/* * OBD IOCTLS */ #define OBD_IOCTL_VERSION 0x00010004 @@ -271,8 +283,11 @@ static inline int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, data->ioc_len = obd_ioctl_packlen(data); data->ioc_version = OBD_IOCTL_VERSION; - if (*pbuf && data->ioc_len > max) + if (*pbuf && data->ioc_len > max) { + fprintf(stderr, "pbuf %p ioc_len %u max %d\n", *pbuf, + data->ioc_len, max); return -EINVAL; + } if (*pbuf == NULL) { *pbuf = malloc(data->ioc_len); } @@ -290,8 +305,11 @@ static inline int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, LOGL(data->ioc_inlbuf3, data->ioc_inllen3, ptr); if (data->ioc_inlbuf4) LOGL(data->ioc_inlbuf4, data->ioc_inllen4, ptr); - if (obd_ioctl_is_invalid(overlay)) + if (obd_ioctl_is_invalid(overlay)) { + fprintf(stderr, "ioc_len %u max %d\n", + data->ioc_len, max); return -EINVAL; + } return 0; } @@ -465,7 +483,10 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_BRW_WRITE _IOWR('f', 126, OBD_IOC_DATA_TYPE) #define OBD_IOC_NAME2DEV _IOWR('f', 127, OBD_IOC_DATA_TYPE) #define OBD_IOC_UUID2DEV _IOWR('f', 130, OBD_IOC_DATA_TYPE) + #define OBD_IOC_GETNAME _IOWR('f', 131, OBD_IOC_DATA_TYPE) +#define OBD_IOC_GETMDNAME _IOR('f', 131, char[MAX_OBD_NAME]) +#define OBD_IOC_GETDTNAME OBD_IOC_GETNAME #define OBD_IOC_LOV_GET_CONFIG _IOWR('f', 132, OBD_IOC_DATA_TYPE) #define OBD_IOC_CLIENT_RECOVER _IOW ('f', 133, OBD_IOC_DATA_TYPE) @@ -487,15 +508,21 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_CHANGELOG_SEND _IOW ('f', 148, OBD_IOC_DATA_TYPE) #define OBD_IOC_GETDEVICE _IOWR ('f', 149, OBD_IOC_DATA_TYPE) #define OBD_IOC_FID2PATH _IOWR ('f', 150, OBD_IOC_DATA_TYPE) -/* see for ioctls 151-153 */ +/* see also for ioctls 151-153 */ +/* OBD_IOC_LOV_SETSTRIPE: See also LL_IOC_LOV_SETSTRIPE */ #define OBD_IOC_LOV_SETSTRIPE _IOW ('f', 154, OBD_IOC_DATA_TYPE) +/* OBD_IOC_LOV_GETSTRIPE: See also LL_IOC_LOV_GETSTRIPE */ #define OBD_IOC_LOV_GETSTRIPE _IOW ('f', 155, OBD_IOC_DATA_TYPE) +/* OBD_IOC_LOV_SETEA: See also LL_IOC_LOV_SETEA */ #define OBD_IOC_LOV_SETEA _IOW ('f', 156, OBD_IOC_DATA_TYPE) /* see for ioctls 157-159 */ +/* OBD_IOC_QUOTACHECK: See also LL_IOC_QUOTACHECK */ #define OBD_IOC_QUOTACHECK _IOW ('f', 160, int) +/* OBD_IOC_POLL_QUOTACHECK: See also LL_IOC_POLL_QUOTACHECK */ #define OBD_IOC_POLL_QUOTACHECK _IOR ('f', 161, struct if_quotacheck *) -#define OBD_IOC_QUOTACTL _IOWR('f', 162, struct if_quotactl *) -/* see for ioctls 163-175 */ +/* OBD_IOC_QUOTACTL: See also LL_IOC_QUOTACTL */ +#define OBD_IOC_QUOTACTL _IOWR('f', 162, struct if_quotactl) +/* see also for ioctls 163-176 */ #define OBD_IOC_CHANGELOG_REG _IOW ('f', 177, struct obd_ioctl_data) #define OBD_IOC_CHANGELOG_DEREG _IOW ('f', 178, struct obd_ioctl_data) #define OBD_IOC_CHANGELOG_CLEAR _IOW ('f', 179, struct obd_ioctl_data) @@ -508,6 +535,7 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_CLEAR_LOG _IOWR('f', 186, OBD_IOC_DATA_TYPE) #define OBD_IOC_PARAM _IOW ('f', 187, OBD_IOC_DATA_TYPE) #define OBD_IOC_POOL _IOWR('f', 188, OBD_IOC_DATA_TYPE) +#define OBD_IOC_REPLACE_NIDS _IOWR('f', 189, OBD_IOC_DATA_TYPE) #define OBD_IOC_CATLOGLIST _IOWR('f', 190, OBD_IOC_DATA_TYPE) #define OBD_IOC_LLOG_INFO _IOWR('f', 191, OBD_IOC_DATA_TYPE) @@ -515,6 +543,7 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_LLOG_CANCEL _IOWR('f', 193, OBD_IOC_DATA_TYPE) #define OBD_IOC_LLOG_REMOVE _IOWR('f', 194, OBD_IOC_DATA_TYPE) #define OBD_IOC_LLOG_CHECK _IOWR('f', 195, OBD_IOC_DATA_TYPE) +/* OBD_IOC_LLOG_CATINFO is deprecated */ #define OBD_IOC_LLOG_CATINFO _IOWR('f', 196, OBD_IOC_DATA_TYPE) #define ECHO_IOC_GET_STRIPE _IOWR('f', 200, OBD_IOC_DATA_TYPE) @@ -524,6 +553,15 @@ static inline void obd_ioctl_freedata(char *buf, int len) #define OBD_IOC_GET_OBJ_VERSION _IOR('f', 210, OBD_IOC_DATA_TYPE) +/* defines ioctl number 218 */ +#define OBD_IOC_GET_MNTOPT _IOW('f', 220, mntopt_t) + +#define OBD_IOC_ECHO_MD _IOR('f', 221, struct obd_ioctl_data) +#define OBD_IOC_ECHO_ALLOC_SEQ _IOWR('f', 222, struct obd_ioctl_data) + +#define OBD_IOC_START_LFSCK _IOWR('f', 230, OBD_IOC_DATA_TYPE) +#define OBD_IOC_STOP_LFSCK _IOW('f', 231, OBD_IOC_DATA_TYPE) + /* XXX _IOWR('f', 250, long) has been defined in * libcfs/include/libcfs/libcfs_private.h for debug, don't use it */ @@ -742,7 +780,7 @@ do { \ } \ } \ \ - cfs_block_sigs(__blocked); \ + cfs_restore_sigs(__blocked); \ \ cfs_set_current_state(CFS_TASK_RUNNING); \ cfs_waitq_del(&wq, &__wait); \ @@ -791,6 +829,7 @@ do { \ } \ } \ } \ + SET_BUT_UNUSED(wq); \ } while (0) #endif /* __KERNEL__ */