From: Ben Evans Date: Fri, 4 Sep 2015 14:26:02 +0000 (-0500) Subject: LU-6401 headers: move swab functions to new header files X-Git-Tag: 2.7.66~41 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=adfb405433aac3691bbd00ed548203c57ce61e3a LU-6401 headers: move swab functions to new header files Create headers for pack_generic.c and llog_swab.c Reference only where needed. Signed-off-by: Ben Evans Change-Id: I0942d2b7e3d60994c43832a94625fa300bac6617 Reviewed-on: http://review.whamcloud.com/16339 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- diff --git a/lustre/include/Makefile.am b/lustre/include/Makefile.am index 1271da6..8ff5a9f 100644 --- a/lustre/include/Makefile.am +++ b/lustre/include/Makefile.am @@ -44,6 +44,7 @@ EXTRA_DIST = \ cl_object.h \ dt_object.h \ interval_tree.h \ + llog_swab.h \ lprocfs_status.h \ lu_object.h \ lu_ref.h \ @@ -84,6 +85,7 @@ EXTRA_DIST = \ lustre_quota.h \ lustre_req_layout.h \ lustre_sec.h \ + lustre_swab.h \ lustre_update.h \ lustre_ver.h \ lu_target.h \ diff --git a/lustre/include/llog_swab.h b/lustre/include/llog_swab.h new file mode 100644 index 0000000..a0b8d02 --- /dev/null +++ b/lustre/include/llog_swab.h @@ -0,0 +1,68 @@ +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.gnu.org/licenses/gpl-2.0.html + * + * GPL HEADER END + */ +/* + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + * + * Copyright (c) 2011, 2014, Intel Corporation. + * + * Copyright 2015 Cray Inc, all rights reserved. + * Author: Ben Evans. + * + * We assume all nodes are either little-endian or big-endian, and we + * always send messages in the sender's native format. The receiver + * detects the message format by checking the 'magic' field of the message + * (see lustre_msg_swabbed() below). + * + * Each type has corresponding 'lustre_swab_xxxtypexxx()' routines + * are implemented in ptlrpc/pack_generic.c. These 'swabbers' convert the + * type from "other" endian, in-place in the message buffer. + * + * A swabber takes a single pointer argument. The caller must already have + * verified that the length of the message buffer >= sizeof (type). + * + * For variable length types, a second 'lustre_swab_v_xxxtypexxx()' routine + * may be defined that swabs just the variable part, after the caller has + * verified that the message buffer is large enough. + */ + +#ifndef _LLOG_SWAB_H_ +#define _LLOG_SWAB_H_ + +#include +struct lustre_cfg; + +void lustre_swab_lu_fid(struct lu_fid *fid); +void lustre_swab_ost_id(struct ost_id *oid); +void lustre_swab_ll_fid(struct ll_fid *fid); +void lustre_swab_llogd_body(struct llogd_body *d); +void lustre_swab_llog_hdr(struct llog_log_hdr *h); +void lustre_swab_llogd_conn_body(struct llogd_conn_body *d); +void lustre_swab_llog_rec(struct llog_rec_hdr *rec); +void lustre_swab_llog_id(struct llog_logid *lid); +void lustre_swab_lu_seq_range(struct lu_seq_range *range); +void lustre_swab_update_ops(struct update_ops *uops, unsigned int op_count); +void lustre_swab_lustre_cfg(struct lustre_cfg *lcfg); +void lustre_swab_cfg_marker(struct cfg_marker *marker, + int swab, int size); + +#endif diff --git a/lustre/include/lustre/lustre_idl.h b/lustre/include/lustre/lustre_idl.h index cebe691..354b6aa 100644 --- a/lustre/include/lustre/lustre_idl.h +++ b/lustre/include/lustre/lustre_idl.h @@ -52,8 +52,7 @@ * that the Lustre wire protocol is not influenced by external dependencies. * * The only other acceptable items in this file are VERY SIMPLE accessor - * functions to avoid callers grubbing inside the structures, and the - * prototypes of the swabber functions for each struct. Nothing that + * functions to avoid callers grubbing inside the structures. Nothing that * depends on external functions or definitions should be in here. * * Structs must be properly aligned to put 64-bit values on an 8-byte @@ -68,23 +67,6 @@ * in the code to ensure that new/old clients that see this larger struct * do not fail, otherwise you need to implement protocol compatibility). * - * We assume all nodes are either little-endian or big-endian, and we - * always send messages in the sender's native format. The receiver - * detects the message format by checking the 'magic' field of the message - * (see lustre_msg_swabbed() below). - * - * Each wire type has corresponding 'lustre_swab_xxxtypexxx()' routines, - * implemented either here, inline (trivial implementations) or in - * ptlrpc/pack_generic.c. These 'swabbers' convert the type from "other" - * endian, in-place in the message buffer. - * - * A swabber takes a single pointer argument. The caller must already have - * verified that the length of the message buffer >= sizeof (type). - * - * For variable length types, a second 'lustre_swab_v_xxxtypexxx()' routine - * may be defined that swabs just the variable part, after the caller has - * verified that the message buffer is large enough. - * * @{ */ @@ -753,8 +735,6 @@ static inline ino_t lu_igif_ino(const struct lu_fid *fid) return fid_seq(fid); } -extern void lustre_swab_ost_id(struct ost_id *oid); - /** * Get inode generation from an igif. * \param fid an igif to get inode generation from. @@ -815,8 +795,6 @@ static inline bool fid_is_sane(const struct lu_fid *fid) fid_seq_is_rsvd(fid_seq(fid))); } -extern void lustre_swab_lu_fid(struct lu_fid *fid); - static inline bool lu_fid_eq(const struct lu_fid *f0, const struct lu_fid *f1) { return memcmp(f0, f1, sizeof *f0) == 0; @@ -873,7 +851,6 @@ struct lu_orphan_ent { struct lu_fid loe_key; struct lu_orphan_rec loe_rec; }; -void lustre_swab_orphan_ent(struct lu_orphan_ent *ent); /** @} lu_fid */ @@ -1135,8 +1112,6 @@ struct ptlrpc_body_v2 { __u64 pb_padding64_2; }; -extern void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb); - /* message body offset for lustre_msg_v2 */ /* ptlrpc body offset in all request/reply messages */ #define MSG_PTLRPC_BODY_OFF 0 @@ -1394,9 +1369,6 @@ struct obd_connect_data { * the matching OBD_CONNECT flag, so that can be approved and landed easily to * reserve the flag for future use. */ - -extern void lustre_swab_connect(struct obd_connect_data *ocd); - /* * Supported checksum algorithms. Up to 32 checksum types are supported. * (32-bit mask stored in obd_connect_data::ocd_cksum_types) @@ -1593,8 +1565,6 @@ static inline void lmm_oi_cpu_to_le(struct ost_id *dst_oi, dst_oi->oi.oi_seq = cpu_to_le64(src_oi->oi.oi_seq); } -/* extern void lustre_swab_lov_mds_md(struct lov_mds_md *llm); */ - #define MAX_MD_SIZE (sizeof(struct lov_mds_md) + 4 * sizeof(struct lov_ost_data)) #define MIN_MD_SIZE (sizeof(struct lov_mds_md) + 1 * sizeof(struct lov_ost_data)) @@ -1764,11 +1734,6 @@ struct hsm_state_set { __u64 hss_clearmask; }; -extern void lustre_swab_hsm_user_state(struct hsm_user_state *hus); -extern void lustre_swab_hsm_state_set(struct hsm_state_set *hss); - -extern void lustre_swab_obd_statfs (struct obd_statfs *os); - /* ost_body.data values for OST_BRW */ #define OBD_BRW_READ 0x01 @@ -1811,8 +1776,6 @@ struct obd_ioobj { #define ioobj_max_brw_set(ioo, num) \ do { (ioo)->ioo_max_brw = ((num) - 1) << IOOBJ_MAX_BRW_BITS; } while (0) -extern void lustre_swab_obd_ioobj (struct obd_ioobj *ioo); - /* multiple of 8 bytes => can array */ struct niobuf_remote { __u64 rnb_offset; @@ -1820,8 +1783,6 @@ struct niobuf_remote { __u32 rnb_flags; }; -void lustre_swab_niobuf_remote(struct niobuf_remote *nbr); - /* lock value block communicated between the filter and llite */ /* OST_LVB_ERR_INIT is needed because the return code in rc is @@ -1842,8 +1803,6 @@ struct ost_lvb_v1 { __u64 lvb_blocks; }; -extern void lustre_swab_ost_lvb_v1(struct ost_lvb_v1 *lvb); - struct ost_lvb { __u64 lvb_size; __s64 lvb_mtime; @@ -1856,8 +1815,6 @@ struct ost_lvb { __u32 lvb_padding; }; -extern void lustre_swab_ost_lvb(struct ost_lvb *lvb); - /* * lquota data structures */ @@ -1895,8 +1852,6 @@ struct obd_quotactl { struct obd_dqblk qc_dqblk; }; -extern void lustre_swab_obd_quotactl(struct obd_quotactl *q); - #define Q_COPY(out, in, member) (out)->member = (in)->member #define QCTL_COPY(out, in) \ @@ -1938,8 +1893,6 @@ struct quota_body { #define QUOTA_DQACQ_FL_REL 0x4 /* release quota */ #define QUOTA_DQACQ_FL_REPORT 0x8 /* report usage */ -extern void lustre_swab_quota_body(struct quota_body *b); - /* Quota types currently supported */ enum { LQUOTA_TYPE_USR = 0x00, /* maps to USRQUOTA */ @@ -2018,8 +1971,6 @@ struct lquota_lvb { __u64 lvb_pad1; }; -extern void lustre_swab_lquota_lvb(struct lquota_lvb *lvb); - /* LVB used with global quota lock */ #define lvb_glb_ver lvb_id_may_rel /* current version of the global index */ @@ -2097,8 +2048,6 @@ typedef enum { REINT_MAX } mds_reint_t, mdt_reint_t; -extern void lustre_swab_generic_32s (__u32 *val); - /* the disposition of the intent outlines what was executed */ #define DISP_IT_EXECD 0x00000001 #define DISP_LOOKUP_EXECD 0x00000002 @@ -2138,8 +2087,6 @@ extern void lustre_swab_generic_32s (__u32 *val); /* This FULL lock is useful to take on unlink sort of operations */ #define MDS_INODELOCK_FULL ((1<<(MDS_INODELOCK_MAXSHIFT+1))-1) -extern void lustre_swab_ll_fid (struct ll_fid *fid); - /* NOTE: until Lustre 1.8.7/2.1.1 the fid_ver() was packed into name[2], * but was moved into name[1] along with the OID to avoid consuming the * name[2,3] fields that need to be used for the quota id (also a FID). */ @@ -2242,8 +2189,6 @@ struct mdt_body { __u64 mbo_padding_10; }; /* 216 */ -extern void lustre_swab_mdt_body (struct mdt_body *b); - struct mdt_ioepoch { struct lustre_handle mio_handle; __u64 mio_unused1; /* was ioepoch */ @@ -2251,8 +2196,6 @@ struct mdt_ioepoch { __u32 mio_padding; }; -extern void lustre_swab_mdt_ioepoch (struct mdt_ioepoch *b); - /* permissions for md_perm.mp_perm */ enum { CFS_SETUID_PERM = 0x01, @@ -2275,8 +2218,6 @@ struct mdt_remote_perm { __u32 rp_padding; }; -extern void lustre_swab_mdt_remote_perm(struct mdt_remote_perm *p); - struct mdt_rec_setattr { __u32 sa_opcode; __u32 sa_cap; @@ -2305,8 +2246,6 @@ struct mdt_rec_setattr { __u32 sa_padding_5; }; -extern void lustre_swab_mdt_rec_setattr (struct mdt_rec_setattr *sa); - /* * Attribute flags used in mdt_rec_setattr::sa_valid. * The kernel's #defines for ATTR_* should not be used over the network @@ -2583,8 +2522,6 @@ struct mdt_rec_reint { __u32 rr_padding_4; /* also fix lustre_swab_mdt_rec_reint */ }; -extern void lustre_swab_mdt_rec_reint(struct mdt_rec_reint *rr); - /* lmv structures */ struct lmv_desc { __u32 ld_tgt_count; /* how many MDS's */ @@ -2600,8 +2537,6 @@ struct lmv_desc { struct obd_uuid ld_uuid; }; -extern void lustre_swab_lmv_desc (struct lmv_desc *ld); - /* LMV layout EA, and it will be stored both in master and slave object */ struct lmv_mds_md_v1 { __u32 lmv_magic; @@ -2678,8 +2613,6 @@ union lmv_mds_md { struct lmv_user_md lmv_user_md; }; -extern void lustre_swab_lmv_mds_md(union lmv_mds_md *lmm); - static inline int lmv_mds_md_size(int stripe_count, unsigned int lmm_magic) { switch (lmm_magic) { @@ -2784,8 +2717,6 @@ struct lov_desc { #define ld_magic ld_active_tgt_count /* for swabbing from llogs */ -extern void lustre_swab_lov_desc (struct lov_desc *ld); - /* * LDLM requests: */ @@ -2813,8 +2744,6 @@ struct ldlm_res_id { (unsigned long long)(res)->lr_name.name[2], \ (unsigned long long)(res)->lr_name.name[3] -extern void lustre_swab_ldlm_res_id (struct ldlm_res_id *id); - static inline bool ldlm_res_eq(const struct ldlm_res_id *res0, const struct ldlm_res_id *res1) { @@ -2890,14 +2819,10 @@ typedef union ldlm_wire_policy_data { struct ldlm_inodebits l_inodebits; } ldlm_wire_policy_data_t; -extern void lustre_swab_ldlm_policy_data(union ldlm_wire_policy_data *d); - union ldlm_gl_desc { struct ldlm_gl_lquota_desc lquota_desc; }; -extern void lustre_swab_gl_desc(union ldlm_gl_desc *); - enum ldlm_intent_flags { IT_OPEN = 0x00000001, IT_CREAT = 0x00000002, @@ -2920,16 +2845,12 @@ struct ldlm_intent { __u64 opc; }; -extern void lustre_swab_ldlm_intent (struct ldlm_intent *i); - struct ldlm_resource_desc { enum ldlm_type lr_type; __u32 lr_pad; /* also fix lustre_swab_ldlm_resource_desc */ struct ldlm_res_id lr_name; }; -extern void lustre_swab_ldlm_resource_desc (struct ldlm_resource_desc *r); - struct ldlm_lock_desc { struct ldlm_resource_desc l_resource; enum ldlm_mode l_req_mode; @@ -2937,8 +2858,6 @@ struct ldlm_lock_desc { union ldlm_wire_policy_data l_policy_data; }; -extern void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l); - #define LDLM_LOCKREQ_HANDLES 2 #define LDLM_ENQUEUE_CANCEL_OFF 1 @@ -2949,8 +2868,6 @@ struct ldlm_request { struct lustre_handle lock_handle[LDLM_LOCKREQ_HANDLES]; }; -extern void lustre_swab_ldlm_request (struct ldlm_request *rq); - /* If LDLM_ENQUEUE, 1 slot is already occupied, 1 is available. * Otherwise, 2 are available. */ #define ldlm_request_bufsize(count,type) \ @@ -2971,8 +2888,6 @@ struct ldlm_reply { __u64 lock_policy_res2; }; -extern void lustre_swab_ldlm_reply (struct ldlm_reply *r); - #define ldlm_flags_to_wire(flags) ((__u32)(flags)) #define ldlm_flags_from_wire(flags) ((__u64)(flags)) @@ -3015,7 +2930,6 @@ struct mgs_target_info { __u64 mti_nids[MTI_NIDS_MAX]; /* host nids (lnet_nid_t)*/ char mti_params[MTI_PARAM_MAXLEN]; }; -extern void lustre_swab_mgs_target_info(struct mgs_target_info *oinfo); struct mgs_nidtbl_entry { __u64 mne_version; /* table version of this entry */ @@ -3030,7 +2944,6 @@ struct mgs_nidtbl_entry { lnet_nid_t nids[0]; /* variable size buffer for NIDs. */ } u; }; -extern void lustre_swab_mgs_nidtbl_entry(struct mgs_nidtbl_entry *oinfo); struct mgs_config_body { char mcb_name[MTI_NAME_MAXLEN]; /* logname */ @@ -3040,13 +2953,11 @@ struct mgs_config_body { __u8 mcb_bits; /* bits unit size of config log */ __u32 mcb_units; /* # of units for bulk transfer */ }; -extern void lustre_swab_mgs_config_body(struct mgs_config_body *body); struct mgs_config_res { __u64 mcr_offset; /* index of last config log */ __u64 mcr_size; /* size of the log */ }; -extern void lustre_swab_mgs_config_res(struct mgs_config_res *body); /* Config marker flags (in config log) */ #define CM_START 0x01 @@ -3067,9 +2978,6 @@ struct cfg_marker { char cm_comment[MTI_NAME_MAXLEN]; }; -extern void lustre_swab_cfg_marker(struct cfg_marker *marker, - int swab, int size); - /* * Opcodes for multiple servers. */ @@ -3498,16 +3406,12 @@ struct lfsck_request { __u64 lr_padding_2; }; -void lustre_swab_lfsck_request(struct lfsck_request *lr); - struct lfsck_reply { __u32 lr_status; __u32 lr_padding_1; __u64 lr_padding_2; }; -void lustre_swab_lfsck_reply(struct lfsck_reply *lr); - enum lfsck_events { LE_LASTID_REBUILDING = 1, LE_LASTID_REBUILT = 2, @@ -3579,8 +3483,6 @@ static inline void lustre_get_wire_obdo(const struct obd_connect_data *ocd, } } -extern void lustre_swab_obdo (struct obdo *o); - /* request structure for OST's */ struct ost_body { struct obdo oa; @@ -3593,28 +3495,9 @@ struct ll_fiemap_info_key { struct fiemap lfik_fiemap; }; -extern void lustre_swab_ost_body (struct ost_body *b); -extern void lustre_swab_ost_last_id(__u64 *id); -extern void lustre_swab_fiemap(struct fiemap *fiemap); - -extern void lustre_swab_lov_user_md_v1(struct lov_user_md_v1 *lum); -extern void lustre_swab_lov_user_md_v3(struct lov_user_md_v3 *lum); -extern void lustre_swab_lov_user_md_objects(struct lov_user_ost_data *lod, - int stripe_count); -extern void lustre_swab_lov_mds_md(struct lov_mds_md *lmm); void lustre_print_user_md(unsigned int level, struct lov_user_md *lum, const char *msg); -/* llog_swab.c */ -extern void lustre_swab_llogd_body (struct llogd_body *d); -extern void lustre_swab_llog_hdr (struct llog_log_hdr *h); -extern void lustre_swab_llogd_conn_body (struct llogd_conn_body *d); -extern void lustre_swab_llog_rec(struct llog_rec_hdr *rec); -extern void lustre_swab_llog_id(struct llog_logid *lid); - -struct lustre_cfg; -extern void lustre_swab_lustre_cfg(struct lustre_cfg *lcfg); - /* Functions for dumping PTLRPC fields */ void dump_rniobuf(struct niobuf_remote *rnb); void dump_ioo(struct obd_ioobj *nb); @@ -3665,7 +3548,6 @@ struct idx_info { __u64 ii_pad2; __u64 ii_pad3; }; -extern void lustre_swab_idx_info(struct idx_info *ii); #define II_END_OFF MDS_DIR_END_OFF /* all entries have been read */ @@ -3698,7 +3580,6 @@ struct lu_idxpage { * For the time being, we only support fixed-size key & record. */ char lip_entries[0]; }; -extern void lustre_swab_lip_header(struct lu_idxpage *lip); #define LIP_HDR_SIZE (offsetof(struct lu_idxpage, lip_entries)) @@ -3738,8 +3619,6 @@ struct lustre_capa { __u8 lc_hmac[CAPA_HMAC_MAX_LEN]; /** HMAC */ } __attribute__((packed)); -extern void lustre_swab_lustre_capa(struct lustre_capa *c); - /** lustre_capa::lc_opc */ enum { CAPA_OPC_BODY_WRITE = 1<<0, /**< write object data */ @@ -3791,8 +3670,6 @@ struct lustre_capa_key { __u8 lk_key[CAPA_HMAC_KEY_MAX_LEN]; /**< key */ } __attribute__((packed)); -extern void lustre_swab_lustre_capa_key(struct lustre_capa_key *k); - /** The link ea holds 1 \a link_ea_entry for each hardlink */ #define LINK_EA_MAGIC 0x11EAF1DFUL struct link_ea_header { @@ -3823,8 +3700,6 @@ struct getinfo_fid2path { char gf_path[0]; } __attribute__((packed)); -void lustre_swab_fid2path (struct getinfo_fid2path *gf); - /** path2parent request/reply structures */ struct getparent { struct lu_fid gp_fid; /**< parent FID */ @@ -3851,8 +3726,6 @@ struct layout_intent { __u64 li_end; }; -void lustre_swab_layout_intent(struct layout_intent *li); - /** * On the wire version of hsm_progress structure. * @@ -3871,13 +3744,6 @@ struct hsm_progress_kernel { __u64 hpk_padding2; } __attribute__((packed)); -extern void lustre_swab_hsm_user_state(struct hsm_user_state *hus); -extern void lustre_swab_hsm_current_action(struct hsm_current_action *action); -extern void lustre_swab_hsm_progress_kernel(struct hsm_progress_kernel *hpk); -extern void lustre_swab_hsm_user_state(struct hsm_user_state *hus); -extern void lustre_swab_hsm_user_item(struct hsm_user_item *hui); -extern void lustre_swab_hsm_request(struct hsm_request *hr); - /** * OUT_UPDATE RPC Format * @@ -3994,11 +3860,6 @@ struct out_update_buffer { __u32 oub_padding; }; -void lustre_swab_object_update(struct object_update *ou); -void lustre_swab_object_update_request(struct object_update_request *our); -void lustre_swab_out_update_header(struct out_update_header *ouh); -void lustre_swab_out_update_buffer(struct out_update_buffer *oub); - static inline size_t object_update_params_size(const struct object_update *update) { @@ -4064,9 +3925,6 @@ struct object_update_reply { __u16 ourp_lens[0]; }; -void lustre_swab_object_update_result(struct object_update_result *our); -void lustre_swab_object_update_reply(struct object_update_reply *our); - static inline struct object_update_result * object_update_result_get(const struct object_update_reply *reply, unsigned int index, size_t *size) @@ -4125,8 +3983,6 @@ struct mdc_swap_layouts { __u64 msl_flags; } __packed; -void lustre_swab_swap_layouts(struct mdc_swap_layouts *msl); - struct close_data { struct lustre_handle cd_handle; struct lu_fid cd_fid; @@ -4134,11 +3990,6 @@ struct close_data { __u64 cd_reserved[8]; }; -void lustre_swab_close_data(struct close_data *data); - -struct update_ops; -void lustre_swab_update_ops(struct update_ops *uops, unsigned int op_count); - /* Update llog format */ struct update_op { struct lu_fid uop_fid; diff --git a/lustre/include/lustre/lustre_user.h b/lustre/include/lustre/lustre_user.h index 9a250e6..ad5c17e 100644 --- a/lustre/include/lustre/lustre_user.h +++ b/lustre/include/lustre/lustre_user.h @@ -474,8 +474,6 @@ static inline int lmv_user_md_size(int stripes, int lmm_magic) stripes * sizeof(struct lmv_user_mds_data); } -extern void lustre_swab_lmv_user_md(struct lmv_user_md *lum); - struct ll_recreate_obj { __u64 lrc_id; __u32 lrc_ost_idx; diff --git a/lustre/include/lustre/seq_range.h b/lustre/include/lustre/seq_range.h index 70bbd21..616ee3a 100644 --- a/lustre/include/lustre/seq_range.h +++ b/lustre/include/lustre/seq_range.h @@ -178,13 +178,6 @@ static inline int lu_seq_range_compare_loc(const struct lu_seq_range *r1, r1->lsr_flags != r2->lsr_flags; } -#if !defined(__REQ_LAYOUT_USER__) -/** - * byte swap range structure \a range - */ - -void lustre_swab_lu_seq_range(struct lu_seq_range *range); -#endif /** * printf string and argument list for sequence range */ diff --git a/lustre/include/lustre_sec.h b/lustre/include/lustre_sec.h index db2b553..11a1b41 100644 --- a/lustre/include/lustre_sec.h +++ b/lustre/include/lustre_sec.h @@ -54,6 +54,7 @@ struct brw_page; /* Linux specific */ struct key; struct seq_file; +struct lustre_cfg; /* * forward declaration diff --git a/lustre/include/lustre_swab.h b/lustre/include/lustre_swab.h new file mode 100644 index 0000000..6de1241 --- /dev/null +++ b/lustre/include/lustre_swab.h @@ -0,0 +1,120 @@ +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.gnu.org/licenses/gpl-2.0.html + * + * GPL HEADER END + */ +/* + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + * + * Copyright (c) 2011, 2014, Intel Corporation. + * + * Copyright 2015 Cray Inc, all rights reserved. + * Author: Ben Evans. + * + * We assume all nodes are either little-endian or big-endian, and we + * always send messages in the sender's native format. The receiver + * detects the message format by checking the 'magic' field of the message + * (see lustre_msg_swabbed() below). + * + * Each wire type has corresponding 'lustre_swab_xxxtypexxx()' routines + * are implemented in ptlrpc/lustre_swab.c. These 'swabbers' convert the + * type from "other" endian, in-place in the message buffer. + * + * A swabber takes a single pointer argument. The caller must already have + * verified that the length of the message buffer >= sizeof (type). + * + * For variable length types, a second 'lustre_swab_v_xxxtypexxx()' routine + * may be defined that swabs just the variable part, after the caller has + * verified that the message buffer is large enough. + */ + +#ifndef _LUSTRE_SWAB_H_ +#define _LUSTRE_SWAB_H_ + +#include + +void lustre_swab_orphan_ent(struct lu_orphan_ent *ent); +void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb); +void lustre_swab_connect(struct obd_connect_data *ocd); +void lustre_swab_hsm_user_state(struct hsm_user_state *hus); +void lustre_swab_hsm_state_set(struct hsm_state_set *hss); +void lustre_swab_obd_statfs(struct obd_statfs *os); +void lustre_swab_obd_ioobj(struct obd_ioobj *ioo); +void lustre_swab_niobuf_remote(struct niobuf_remote *nbr); +void lustre_swab_ost_lvb_v1(struct ost_lvb_v1 *lvb); +void lustre_swab_ost_lvb(struct ost_lvb *lvb); +void lustre_swab_obd_quotactl(struct obd_quotactl *q); +void lustre_swab_quota_body(struct quota_body *b); +void lustre_swab_lquota_lvb(struct lquota_lvb *lvb); +void lustre_swab_generic_32s(__u32 *val); +void lustre_swab_mdt_body(struct mdt_body *b); +void lustre_swab_mdt_ioepoch(struct mdt_ioepoch *b); +void lustre_swab_mdt_remote_perm(struct mdt_remote_perm *p); +void lustre_swab_mdt_rec_setattr(struct mdt_rec_setattr *sa); +void lustre_swab_mdt_rec_reint(struct mdt_rec_reint *rr); +void lustre_swab_lmv_desc(struct lmv_desc *ld); +void lustre_swab_lmv_mds_md(union lmv_mds_md *lmm); +void lustre_swab_lov_desc(struct lov_desc *ld); +void lustre_swab_ldlm_res_id(struct ldlm_res_id *id); +void lustre_swab_ldlm_policy_data(union ldlm_wire_policy_data *d); +void lustre_swab_gl_desc(union ldlm_gl_desc *); +void lustre_swab_ldlm_intent(struct ldlm_intent *i); +void lustre_swab_ldlm_resource_desc(struct ldlm_resource_desc *r); +void lustre_swab_ldlm_lock_desc(struct ldlm_lock_desc *l); +void lustre_swab_ldlm_request(struct ldlm_request *rq); +void lustre_swab_ldlm_reply(struct ldlm_reply *r); +void lustre_swab_mgs_target_info(struct mgs_target_info *oinfo); +void lustre_swab_mgs_nidtbl_entry(struct mgs_nidtbl_entry *oinfo); +void lustre_swab_mgs_config_body(struct mgs_config_body *body); +void lustre_swab_mgs_config_res(struct mgs_config_res *body); +void lustre_swab_lfsck_request(struct lfsck_request *lr); +void lustre_swab_lfsck_reply(struct lfsck_reply *lr); +void lustre_swab_obdo(struct obdo *o); +void lustre_swab_ost_body(struct ost_body *b); +void lustre_swab_ost_last_id(__u64 *id); +void lustre_swab_fiemap(struct fiemap *fiemap); +void lustre_swab_lov_user_md_v1(struct lov_user_md_v1 *lum); +void lustre_swab_lov_user_md_v3(struct lov_user_md_v3 *lum); +void lustre_swab_lov_user_md_objects(struct lov_user_ost_data *lod, + int stripe_count); +void lustre_swab_lov_mds_md(struct lov_mds_md *lmm); +void lustre_swab_idx_info(struct idx_info *ii); +void lustre_swab_lip_header(struct lu_idxpage *lip); +void lustre_swab_lustre_capa(struct lustre_capa *c); +void lustre_swab_lustre_capa_key(struct lustre_capa_key *k); +void lustre_swab_fid2path(struct getinfo_fid2path *gf); +void lustre_swab_layout_intent(struct layout_intent *li); +void lustre_swab_hsm_user_state(struct hsm_user_state *hus); +void lustre_swab_hsm_current_action(struct hsm_current_action *action); +void lustre_swab_hsm_progress_kernel(struct hsm_progress_kernel *hpk); +void lustre_swab_hsm_user_state(struct hsm_user_state *hus); +void lustre_swab_hsm_user_item(struct hsm_user_item *hui); +void lustre_swab_hsm_request(struct hsm_request *hr); +void lustre_swab_object_update(struct object_update *ou); +void lustre_swab_object_update_request(struct object_update_request *our); +void lustre_swab_out_update_header(struct out_update_header *ouh); +void lustre_swab_out_update_buffer(struct out_update_buffer *oub); +void lustre_swab_object_update_result(struct object_update_result *our); +void lustre_swab_object_update_reply(struct object_update_reply *our); +void lustre_swab_swap_layouts(struct mdc_swap_layouts *msl); +void lustre_swab_close_data(struct close_data *data); +void lustre_swab_lmv_user_md(struct lmv_user_md *lum); + +#endif diff --git a/lustre/ldlm/ldlm_lock.c b/lustre/ldlm/ldlm_lock.c index b402a2d..484f0b4 100644 --- a/lustre/ldlm/ldlm_lock.c +++ b/lustre/ldlm/ldlm_lock.c @@ -42,7 +42,10 @@ #define DEBUG_SUBSYSTEM S_LDLM #include + +#include #include + #include "ldlm_internal.h" /* lock types */ diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index 142b48d..de3f657 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -53,6 +53,7 @@ #define DEBUG_SUBSYSTEM S_LLITE #include + #include #include #include @@ -60,6 +61,8 @@ #include #include #include +#include + #include "llite_internal.h" /* diff --git a/lustre/llite/file.c b/lustre/llite/file.c index b4f3779..0d13b13 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -50,10 +50,11 @@ # include #endif #include + #include +#include #include "cl_object.h" - #include "llite_internal.h" #include "vvp_internal.h" diff --git a/lustre/llite/remote_perm.c b/lustre/llite/remote_perm.c index 99a30e4..01f0be8 100644 --- a/lustre/llite/remote_perm.c +++ b/lustre/llite/remote_perm.c @@ -51,11 +51,13 @@ # include #endif -#include #include +#include +#include +#include #include #include -#include + #include "llite_internal.h" struct kmem_cache *ll_remote_perm_cachep; diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index 6d6396d..63054d8 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "lod_internal.h" diff --git a/lustre/lod/lod_object.c b/lustre/lod/lod_object.c index d21b192..5118151 100644 --- a/lustre/lod/lod_object.c +++ b/lustre/lod/lod_object.c @@ -42,16 +42,16 @@ #include #include -#include #include -#include #include -#include -#include +#include #include +#include +#include +#include +#include #include -#include #include "lod_internal.h" diff --git a/lustre/lod/lod_qos.c b/lustre/lod/lod_qos.c index 1aa9dc1..d064f62 100644 --- a/lustre/lod/lod_qos.c +++ b/lustre/lod/lod_qos.c @@ -39,8 +39,10 @@ #include #include -#include #include +#include +#include + #include "lod_internal.h" /* diff --git a/lustre/lov/lov_obd.c b/lustre/lov/lov_obd.c index 5cff89f..d3b3a6c 100644 --- a/lustre/lov/lov_obd.c +++ b/lustre/lov/lov_obd.c @@ -44,18 +44,20 @@ #define DEBUG_SUBSYSTEM S_LOV #include -#include -#include -#include -#include #include + +#include #include +#include +#include +#include #include -#include -#include +#include #include -#include -#include +#include +#include +#include +#include #include "lov_internal.h" diff --git a/lustre/lov/lov_pack.c b/lustre/lov/lov_pack.c index 9ac1d34..d8a3767 100644 --- a/lustre/lov/lov_pack.c +++ b/lustre/lov/lov_pack.c @@ -42,14 +42,17 @@ #define DEBUG_SUBSYSTEM S_LOV +#include +#include + #include +#include #include #include #include -#include -#include "lov_internal.h" #include "lov_cl_internal.h" +#include "lov_internal.h" void lov_dump_lmm_common(int level, void *lmmp) { diff --git a/lustre/mdc/mdc_locks.c b/lustre/mdc/mdc_locks.c index a7cb3ff..88fffaa 100644 --- a/lustre/mdc/mdc_locks.c +++ b/lustre/mdc/mdc_locks.c @@ -37,14 +37,17 @@ #define DEBUG_SUBSYSTEM S_MDC #include + #include #include #include -#include /* fid_res_name_eq() */ +#include #include #include #include #include +#include + #include "mdc_internal.h" struct mdc_getattr_args { diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index 9c106b9..d002b02 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -36,27 +36,29 @@ #define DEBUG_SUBSYSTEM S_MDC -#include -#include -#include #include -#include #include +#include +#include +#include #include +#include #ifdef HAVE_UIDGID_HEADER # include #endif +#include +#include +#include #include +#include #include -#include +#include #include -#include -#include -#include #include -#include -#include +#include +#include +#include #include "mdc_internal.h" diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 449bd3c..fba0ff5 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -49,27 +49,24 @@ #define DEBUG_SUBSYSTEM S_MDS #include -/* - * struct OBD_{ALLOC,FREE}*() - */ -#include + +#include +#include +#include #include -/* struct ptlrpc_request */ +#include +#include #include -/* struct obd_export */ -#include -/* struct obd_device */ -#include -/* lu2dt_dev() */ -#include +#include #include -#include -#include "mdt_internal.h" -#include #include #include -#include -#include +#include +#include +#include + +#include "mdt_internal.h" + static unsigned int max_mod_rpcs_per_client = 8; CFS_MODULE_PARM(max_mod_rpcs_per_client, "i", uint, 0644, diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c index ba1a2e1..9dc2a3e 100644 --- a/lustre/mgc/mgc_request.c +++ b/lustre/mgc/mgc_request.c @@ -43,12 +43,14 @@ #include #include -#include -#include + +#include #include -#include +#include #include -#include +#include +#include +#include #include "mgc_internal.h" diff --git a/lustre/obdclass/llog.c b/lustre/obdclass/llog.c index e558178..4f46275 100644 --- a/lustre/obdclass/llog.c +++ b/lustre/obdclass/llog.c @@ -48,10 +48,10 @@ #define DEBUG_SUBSYSTEM S_LOG #include -#include +#include #include +#include #include "llog_internal.h" - /* * Allocate a new log or catalog handle * Used inside llog_open(). diff --git a/lustre/obdclass/llog_osd.c b/lustre/obdclass/llog_osd.c index e88e30f..0503e66 100644 --- a/lustre/obdclass/llog_osd.c +++ b/lustre/obdclass/llog_osd.c @@ -44,10 +44,11 @@ #define DEBUG_SUBSYSTEM S_LOG +#include +#include +#include #include #include -#include -#include #include "llog_internal.h" #include "local_storage.h" diff --git a/lustre/obdclass/md_attrs.c b/lustre/obdclass/md_attrs.c index e06eb50..d83b5bb 100644 --- a/lustre/obdclass/md_attrs.c +++ b/lustre/obdclass/md_attrs.c @@ -28,6 +28,9 @@ */ #include + +#include +#include #include #include diff --git a/lustre/obdclass/obd_config.c b/lustre/obdclass/obd_config.c index 418a58d..c22b379 100644 --- a/lustre/obdclass/obd_config.c +++ b/lustre/obdclass/obd_config.c @@ -39,13 +39,16 @@ */ #define DEBUG_SUBSYSTEM S_CLASS -#include + #include + +#include +#include #include #include #include -#include #include +#include #include "llog_internal.h" diff --git a/lustre/obdclass/obd_mount_server.c b/lustre/obdclass/obd_mount_server.c index 45717b1..5a70b89 100644 --- a/lustre/obdclass/obd_mount_server.c +++ b/lustre/obdclass/obd_mount_server.c @@ -49,18 +49,22 @@ #include #include #include -#include -#include -#include #include -#include -#include -#include -#include #ifdef HAVE_KERNEL_LOCKED #include #endif +#include +#include + +#include +#include +#include +#include +#include +#include +#include + /*********** mount lookup *********/ static DEFINE_MUTEX(lustre_mount_info_lock); diff --git a/lustre/ofd/ofd_lvb.c b/lustre/ofd/ofd_lvb.c index 9da0300..ec1cae3 100644 --- a/lustre/ofd/ofd_lvb.c +++ b/lustre/ofd/ofd_lvb.c @@ -45,6 +45,7 @@ #define DEBUG_SUBSYSTEM S_FILTER +#include #include "ofd_internal.h" /** diff --git a/lustre/osp/osp_md_object.c b/lustre/osp/osp_md_object.c index 38b4634..f9afd25 100644 --- a/lustre/osp/osp_md_object.c +++ b/lustre/osp/osp_md_object.c @@ -53,6 +53,7 @@ #define DEBUG_SUBSYSTEM S_MDS +#include #include #include "osp_internal.h" diff --git a/lustre/osp/osp_object.c b/lustre/osp/osp_object.c index c3d8408..41aa529 100644 --- a/lustre/osp/osp_object.c +++ b/lustre/osp/osp_object.c @@ -124,6 +124,7 @@ #define DEBUG_SUBSYSTEM S_MDS +#include #include "osp_internal.h" static inline __u32 osp_dev2node(struct osp_device *osp) diff --git a/lustre/ptlrpc/layout.c b/lustre/ptlrpc/layout.c index 346d610..20cbf1e 100644 --- a/lustre/ptlrpc/layout.c +++ b/lustre/ptlrpc/layout.c @@ -52,15 +52,14 @@ #include -/* LUSTRE_VERSION_CODE */ -#include - -#include -/* lustre_swab_mdt_body */ #include -/* obd2cli_tgt() (required by DEBUG_REQ()) */ -#include + +#include #include +#include +#include +#include +#include #endif /* !__REQ_LAYOUT_USER__ */ /* struct ptlrpc_request, lustre_msg* */ diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index 18c1865..3f43f61 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -46,11 +46,14 @@ #include -#include -#include +#include + +#include #include +#include #include -#include +#include +#include #include "ptlrpc_internal.h" diff --git a/lustre/quota/qmt_lock.c b/lustre/quota/qmt_lock.c index e82f79a..ae8a035 100644 --- a/lustre/quota/qmt_lock.c +++ b/lustre/quota/qmt_lock.c @@ -31,7 +31,9 @@ #define DEBUG_SUBSYSTEM S_LQUOTA #include + #include +#include #include #include "qmt_internal.h" diff --git a/lustre/quota/qsd_reint.c b/lustre/quota/qsd_reint.c index 33e4988..5263c52 100644 --- a/lustre/quota/qsd_reint.c +++ b/lustre/quota/qsd_reint.c @@ -31,6 +31,7 @@ #define DEBUG_SUBSYSTEM S_LQUOTA #include +#include #include "qsd_internal.h" /* diff --git a/lustre/target/out_handler.c b/lustre/target/out_handler.c index 6499fc4..eb86c58 100644 --- a/lustre/target/out_handler.c +++ b/lustre/target/out_handler.c @@ -31,10 +31,12 @@ #define DEBUG_SUBSYSTEM S_CLASS -#include +#include +#include +#include #include +#include #include "tgt_internal.h" -#include static void out_reconstruct(const struct lu_env *env, struct dt_device *dt, struct dt_object *obj, diff --git a/lustre/target/update_recovery.c b/lustre/target/update_recovery.c index c4282e9..2e36524 100644 --- a/lustre/target/update_recovery.c +++ b/lustre/target/update_recovery.c @@ -44,8 +44,9 @@ #define DEBUG_SUBSYSTEM S_CLASS #include -#include #include +#include +#include #include #include #include "tgt_internal.h"