Whamcloud - gitweb
LU-6401 headers: Create a header for obdo related functions
[fs/lustre-release.git] / lustre / include / lustre / lustre_idl.h
index ed1c0d3..e51aae3 100644 (file)
@@ -73,6 +73,7 @@
 #ifndef _LUSTRE_IDL_H_
 #define _LUSTRE_IDL_H_
 
+#include <linux/types.h>
 #include <libcfs/libcfs.h>
 #include <lnet/types.h>
 #include <lustre/lustre_user.h> /* Defn's shared with user-space. */
@@ -3450,7 +3451,7 @@ struct lfsck_request {
 struct lfsck_reply {
        __u32           lr_status;
        __u32           lr_padding_1;
-       __u64           lr_padding_2;
+       __u64           lr_repaired;
 };
 
 enum lfsck_events {
@@ -3477,56 +3478,12 @@ enum lfsck_event_flags {
        LEF_SET_LMV_HASH        = 0x00000004,
        LEF_SET_LMV_ALL         = 0x00000008,
        LEF_RECHECK_NAME_HASH   = 0x00000010,
+       LEF_QUERY_ALL           = 0x00000020,
 };
 
-static inline void lustre_set_wire_obdo(const struct obd_connect_data *ocd,
-                                       struct obdo *wobdo,
-                                       const struct obdo *lobdo)
-{
-       *wobdo = *lobdo;
-       wobdo->o_flags &= ~OBD_FL_LOCAL_MASK;
-       if (ocd == NULL)
-               return;
-
-       if (unlikely(!(ocd->ocd_connect_flags & OBD_CONNECT_FID)) &&
-           fid_seq_is_echo(ostid_seq(&lobdo->o_oi))) {
-               /* Currently OBD_FL_OSTID will only be used when 2.4 echo
-                * client communicate with pre-2.4 server */
-               wobdo->o_oi.oi.oi_id = fid_oid(&lobdo->o_oi.oi_fid);
-               wobdo->o_oi.oi.oi_seq = fid_seq(&lobdo->o_oi.oi_fid);
-       }
-}
-
-static inline void lustre_get_wire_obdo(const struct obd_connect_data *ocd,
-                                       struct obdo *lobdo,
-                                       const struct obdo *wobdo)
-{
-       __u32 local_flags = 0;
-
-        if (lobdo->o_valid & OBD_MD_FLFLAGS)
-                 local_flags = lobdo->o_flags & OBD_FL_LOCAL_MASK;
-
-       *lobdo = *wobdo;
-       if (local_flags != 0) {
-               lobdo->o_valid |= OBD_MD_FLFLAGS;
-               lobdo->o_flags &= ~OBD_FL_LOCAL_MASK;
-               lobdo->o_flags |= local_flags;
-       }
-       if (ocd == NULL)
-               return;
-
-       if (unlikely(!(ocd->ocd_connect_flags & OBD_CONNECT_FID)) &&
-           fid_seq_is_echo(wobdo->o_oi.oi.oi_seq)) {
-               /* see above */
-               lobdo->o_oi.oi_fid.f_seq = wobdo->o_oi.oi.oi_seq;
-               lobdo->o_oi.oi_fid.f_oid = wobdo->o_oi.oi.oi_id;
-               lobdo->o_oi.oi_fid.f_ver = 0;
-       }
-}
-
 /* request structure for OST's */
 struct ost_body {
-        struct  obdo oa;
+       struct obdo oa;
 };
 
 /* Key for FIEMAP to be used in get_info calls */
@@ -3542,7 +3499,6 @@ void lustre_print_user_md(unsigned int level, struct lov_user_md *lum,
 /* Functions for dumping PTLRPC fields */
 void dump_rniobuf(struct niobuf_remote *rnb);
 void dump_ioo(struct obd_ioobj *nb);
-void dump_obdo(struct obdo *oa);
 void dump_ost_body(struct ost_body *ob);
 void dump_rcs(__u32 *rc);
 
@@ -4088,6 +4044,49 @@ struct llog_update_record {
        */
 };
 
+/* nodemap records, uses 32 byte record length */
+#define LUSTRE_NODEMAP_NAME_LENGTH 16
+struct nodemap_cluster_rec {
+       char    ncr_name[LUSTRE_NODEMAP_NAME_LENGTH + 1];
+       __u8    ncr_flags;
+       __u16   ncr_padding1;
+       __u32   ncr_padding2;
+       __u32   ncr_squash_uid;
+       __u32   ncr_squash_gid;
+};
+
+/* lnet_nid_t is 8 bytes */
+struct nodemap_range_rec {
+       lnet_nid_t      nrr_start_nid;
+       lnet_nid_t      nrr_end_nid;
+       __u64           nrr_padding1;
+       __u64           nrr_padding2;
+};
+
+struct nodemap_id_rec {
+       __u32   nir_id_fs;
+       __u32   nir_padding1;
+       __u64   nir_padding2;
+       __u64   nir_padding3;
+       __u64   nir_padding4;
+};
+
+struct nodemap_global_rec {
+       __u8    ngr_is_active;
+       __u8    ngr_padding1;
+       __u16   ngr_padding2;
+       __u32   ngr_padding3;
+       __u64   ngr_padding4;
+       __u64   ngr_padding5;
+       __u64   ngr_padding6;
+};
+
+union nodemap_rec {
+       struct nodemap_cluster_rec ncr;
+       struct nodemap_range_rec nrr;
+       struct nodemap_id_rec nir;
+       struct nodemap_global_rec ngr;
+};
 
 #endif
 /** @} lustreidl */