cl_object.h \
dt_object.h \
interval_tree.h \
+ llog_swab.h \
lprocfs_status.h \
lu_object.h \
lu_ref.h \
lustre_quota.h \
lustre_req_layout.h \
lustre_sec.h \
+ lustre_swab.h \
lustre_update.h \
lustre_ver.h \
lu_target.h \
--- /dev/null
+/*
+ * 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 <lustre/lustre_idl.h>
+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
* 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
* 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.
- *
* @{
*/
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.
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;
struct lu_fid loe_key;
struct lu_orphan_rec loe_rec;
};
-void lustre_swab_orphan_ent(struct lu_orphan_ent *ent);
/** @} lu_fid */
__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
* 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)
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))
__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
#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;
__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
__u64 lvb_blocks;
};
-extern void lustre_swab_ost_lvb_v1(struct ost_lvb_v1 *lvb);
-
struct ost_lvb {
__u64 lvb_size;
__s64 lvb_mtime;
__u32 lvb_padding;
};
-extern void lustre_swab_ost_lvb(struct ost_lvb *lvb);
-
/*
* lquota data structures
*/
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) \
#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 */
__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 */
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
/* 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). */
__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 */
__u32 mio_padding;
};
-extern void lustre_swab_mdt_ioepoch (struct mdt_ioepoch *b);
-
/* permissions for md_perm.mp_perm */
enum {
CFS_SETUID_PERM = 0x01,
__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;
__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
__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 */
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;
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) {
#define ld_magic ld_active_tgt_count /* for swabbing from llogs */
-extern void lustre_swab_lov_desc (struct lov_desc *ld);
-
/*
* LDLM requests:
*/
(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)
{
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,
__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;
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
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) \
__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))
__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 */
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 */
__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
char cm_comment[MTI_NAME_MAXLEN];
};
-extern void lustre_swab_cfg_marker(struct cfg_marker *marker,
- int swab, int size);
-
/*
* Opcodes for multiple servers.
*/
__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,
}
}
-extern void lustre_swab_obdo (struct obdo *o);
-
/* request structure for OST's */
struct ost_body {
struct obdo oa;
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);
__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 */
* 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))
__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 */
__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 {
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 */
__u64 li_end;
};
-void lustre_swab_layout_intent(struct layout_intent *li);
-
/**
* On the wire version of hsm_progress structure.
*
__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
*
__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)
{
__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)
__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;
__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;
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;
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
*/
/* Linux specific */
struct key;
struct seq_file;
+struct lustre_cfg;
/*
* forward declaration
--- /dev/null
+/*
+ * 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 <lustre/lustre_idl.h>
+
+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
#define DEBUG_SUBSYSTEM S_LDLM
#include <libcfs/libcfs.h>
+
+#include <lustre_swab.h>
#include <obd_class.h>
+
#include "ldlm_internal.h"
/* lock types */
#define DEBUG_SUBSYSTEM S_LLITE
#include <lustre/lustre_idl.h>
+
#include <obd_support.h>
#include <obd_class.h>
#include <lustre_ioctl.h>
#include <lustre_dlm.h>
#include <lustre_fid.h>
#include <lustre_kernelcomm.h>
+#include <lustre_swab.h>
+
#include "llite_internal.h"
/*
# include <linux/uidgid.h>
#endif
#include <lustre/ll_fiemap.h>
+
#include <lustre_ioctl.h>
+#include <lustre_swab.h>
#include "cl_object.h"
-
#include "llite_internal.h"
#include "vvp_internal.h"
# include <linux/uidgid.h>
#endif
-#include <lustre_ha.h>
#include <lustre_dlm.h>
+#include <lustre_ha.h>
+#include <lustre_param.h>
+#include <lustre_swab.h>
#include <lprocfs_status.h>
#include <lustre_disk.h>
-#include <lustre_param.h>
+
#include "llite_internal.h"
struct kmem_cache *ll_remote_perm_cachep;
#include <obd_class.h>
#include <lustre_lfsck.h>
#include <lustre_lmv.h>
+#include <lustre_swab.h>
#include "lod_internal.h"
#include <obd.h>
#include <obd_class.h>
-#include <lustre_ver.h>
#include <obd_support.h>
-#include <lprocfs_status.h>
#include <lustre_fid.h>
-#include <lustre_param.h>
-#include <lustre_fid.h>
+#include <lustre_linkea.h>
#include <lustre_lmv.h>
+#include <lustre_param.h>
+#include <lustre_swab.h>
+#include <lustre_ver.h>
+#include <lprocfs_status.h>
#include <md_object.h>
-#include <lustre_linkea.h>
#include "lod_internal.h"
#include <asm/div64.h>
#include <libcfs/libcfs.h>
-#include <obd_class.h>
#include <lustre/lustre_idl.h>
+#include <lustre_swab.h>
+#include <obd_class.h>
+
#include "lod_internal.h"
/*
#define DEBUG_SUBSYSTEM S_LOV
#include <libcfs/libcfs.h>
-#include <obd_support.h>
-#include <lustre_ioctl.h>
-#include <lustre_lib.h>
-#include <lustre_net.h>
#include <lustre/lustre_idl.h>
+
+#include <cl_object.h>
#include <lustre_dlm.h>
+#include <lustre_fid.h>
+#include <lustre_ioctl.h>
+#include <lustre_lib.h>
#include <lustre_mds.h>
-#include <obd_class.h>
-#include <lprocfs_status.h>
+#include <lustre_net.h>
#include <lustre_param.h>
-#include <cl_object.h>
-#include <lustre_fid.h>
+#include <lustre_swab.h>
+#include <lprocfs_status.h>
+#include <obd_class.h>
+#include <obd_support.h>
#include "lov_internal.h"
#define DEBUG_SUBSYSTEM S_LOV
+#include <lustre/lustre_idl.h>
+#include <lustre/lustre_user.h>
+
#include <lustre_net.h>
+#include <lustre_swab.h>
#include <obd.h>
#include <obd_class.h>
#include <obd_support.h>
-#include <lustre/lustre_user.h>
-#include "lov_internal.h"
#include "lov_cl_internal.h"
+#include "lov_internal.h"
void lov_dump_lmm_common(int level, void *lmmp)
{
#define DEBUG_SUBSYSTEM S_MDC
#include <linux/module.h>
+
#include <obd.h>
#include <obd_class.h>
#include <lustre_dlm.h>
-#include <lustre_fid.h> /* fid_res_name_eq() */
+#include <lustre_fid.h>
#include <lustre_intent.h>
#include <lustre_mdc.h>
#include <lustre_net.h>
#include <lustre_req_layout.h>
+#include <lustre_swab.h>
+
#include "mdc_internal.h"
struct mdc_getattr_args {
#define DEBUG_SUBSYSTEM S_MDC
-#include <linux/module.h>
-#include <linux/pagemap.h>
-#include <linux/miscdevice.h>
#include <linux/init.h>
-#include <linux/utsname.h>
#include <linux/kthread.h>
+#include <linux/miscdevice.h>
+#include <linux/module.h>
+#include <linux/pagemap.h>
#include <linux/user_namespace.h>
+#include <linux/utsname.h>
#ifdef HAVE_UIDGID_HEADER
# include <linux/uidgid.h>
#endif
+#include <cl_object.h>
+#include <llog_swab.h>
+#include <lprocfs_status.h>
#include <lustre_acl.h>
+#include <lustre_fid.h>
#include <lustre_ioctl.h>
-#include <obd_class.h>
+#include <lustre_kernelcomm.h>
#include <lustre_lmv.h>
-#include <lustre_fid.h>
-#include <lprocfs_status.h>
-#include <lustre_param.h>
#include <lustre_log.h>
-#include <lustre_kernelcomm.h>
-#include <cl_object.h>
+#include <lustre_param.h>
+#include <lustre_swab.h>
+#include <obd_class.h>
#include "mdc_internal.h"
#define DEBUG_SUBSYSTEM S_MDS
#include <linux/module.h>
-/*
- * struct OBD_{ALLOC,FREE}*()
- */
-#include <obd_support.h>
+
+#include <dt_object.h>
+#include <lustre_acl.h>
+#include <lustre_export.h>
#include <lustre_ioctl.h>
-/* struct ptlrpc_request */
+#include <lustre_lfsck.h>
+#include <lustre_log.h>
#include <lustre_net.h>
-/* struct obd_export */
-#include <lustre_export.h>
-/* struct obd_device */
-#include <obd.h>
-/* lu2dt_dev() */
-#include <dt_object.h>
+#include <lustre_nodemap.h>
#include <lustre_mds.h>
-#include <lustre_log.h>
-#include "mdt_internal.h"
-#include <lustre_acl.h>
#include <lustre_param.h>
#include <lustre_quota.h>
-#include <lustre_lfsck.h>
-#include <lustre_nodemap.h>
+#include <lustre_swab.h>
+#include <obd.h>
+#include <obd_support.h>
+
+#include "mdt_internal.h"
+
static unsigned int max_mod_rpcs_per_client = 8;
CFS_MODULE_PARM(max_mod_rpcs_per_client, "i", uint, 0644,
#include <linux/module.h>
#include <linux/kthread.h>
-#include <obd_class.h>
-#include <lustre_dlm.h>
+
+#include <dt_object.h>
#include <lprocfs_status.h>
-#include <lustre_log.h>
+#include <lustre_dlm.h>
#include <lustre_disk.h>
-#include <dt_object.h>
+#include <lustre_log.h>
+#include <lustre_swab.h>
+#include <obd_class.h>
#include "mgc_internal.h"
#define DEBUG_SUBSYSTEM S_LOG
#include <linux/kthread.h>
-#include <obd_class.h>
+#include <llog_swab.h>
#include <lustre_log.h>
+#include <obd_class.h>
#include "llog_internal.h"
-
/*
* Allocate a new log or catalog handle
* Used inside llog_open().
#define DEBUG_SUBSYSTEM S_LOG
+#include <dt_object.h>
+#include <llog_swab.h>
+#include <lustre_fid.h>
#include <obd.h>
#include <obd_class.h>
-#include <lustre_fid.h>
-#include <dt_object.h>
#include "llog_internal.h"
#include "local_storage.h"
*/
#include <lustre/lustre_idl.h>
+
+#include <llog_swab.h>
+#include <lustre_swab.h>
#include <obd.h>
#include <md_object.h>
*/
#define DEBUG_SUBSYSTEM S_CLASS
-#include <obd_class.h>
+
#include <linux/string.h>
+
+#include <llog_swab.h>
+#include <lprocfs_status.h>
#include <lustre_disk.h>
#include <lustre_ioctl.h>
#include <lustre_log.h>
-#include <lprocfs_status.h>
#include <lustre_param.h>
+#include <obd_class.h>
#include "llog_internal.h"
#include <linux/types.h>
#include <linux/selinux.h>
#include <linux/statfs.h>
-#include <obd.h>
-#include <obd_class.h>
-#include <lustre/lustre_user.h>
#include <linux/version.h>
-#include <lustre_ioctl.h>
-#include <lustre_log.h>
-#include <lustre_disk.h>
-#include <lustre_param.h>
#ifdef HAVE_KERNEL_LOCKED
#include <linux/smp_lock.h>
#endif
+#include <lustre/lustre_idl.h>
+#include <lustre/lustre_user.h>
+
+#include <llog_swab.h>
+#include <lustre_disk.h>
+#include <lustre_ioctl.h>
+#include <lustre_log.h>
+#include <lustre_param.h>
+#include <obd.h>
+#include <obd_class.h>
+
/*********** mount lookup *********/
static DEFINE_MUTEX(lustre_mount_info_lock);
#define DEBUG_SUBSYSTEM S_FILTER
+#include <lustre_swab.h>
#include "ofd_internal.h"
/**
#define DEBUG_SUBSYSTEM S_MDS
+#include <llog_swab.h>
#include <lustre_log.h>
#include "osp_internal.h"
#define DEBUG_SUBSYSTEM S_MDS
+#include <lustre_swab.h>
#include "osp_internal.h"
static inline __u32 osp_dev2node(struct osp_device *osp)
#include <linux/module.h>
-/* LUSTRE_VERSION_CODE */
-#include <lustre_ver.h>
-
-#include <obd_support.h>
-/* lustre_swab_mdt_body */
#include <lustre/lustre_idl.h>
-/* obd2cli_tgt() (required by DEBUG_REQ()) */
-#include <obd.h>
+
+#include <llog_swab.h>
#include <lustre_debug.h>
+#include <lustre_swab.h>
+#include <lustre_ver.h>
+#include <obd.h>
+#include <obd_support.h>
#endif /* !__REQ_LAYOUT_USER__ */
/* struct ptlrpc_request, lustre_msg* */
#include <libcfs/libcfs.h>
-#include <obd_support.h>
-#include <obd_class.h>
+#include <lustre/ll_fiemap.h>
+
+#include <llog_swab.h>
#include <lustre_net.h>
+#include <lustre_swab.h>
#include <obd_cksum.h>
-#include <lustre/ll_fiemap.h>
+#include <obd_class.h>
+#include <obd_support.h>
#include "ptlrpc_internal.h"
#define DEBUG_SUBSYSTEM S_LQUOTA
#include <linux/kthread.h>
+
#include <lustre_dlm.h>
+#include <lustre_swab.h>
#include <obd_class.h>
#include "qmt_internal.h"
#define DEBUG_SUBSYSTEM S_LQUOTA
#include <linux/kthread.h>
+#include <lustre_swab.h>
#include "qsd_internal.h"
/*
#define DEBUG_SUBSYSTEM S_CLASS
-#include <obd_class.h>
+#include <llog_swab.h>
+#include <lustre_swab.h>
+#include <lustre_update.h>
#include <md_object.h>
+#include <obd_class.h>
#include "tgt_internal.h"
-#include <lustre_update.h>
static void out_reconstruct(const struct lu_env *env, struct dt_device *dt,
struct dt_object *obj,
#define DEBUG_SUBSYSTEM S_CLASS
#include <lu_target.h>
-#include <md_object.h>
#include <lustre_update.h>
+#include <lustre_swab.h>
+#include <md_object.h>
#include <obd.h>
#include <obd_class.h>
#include "tgt_internal.h"