Whamcloud - gitweb
LU-5099 api: transfer object type via dt_insert API
[fs/lustre-release.git] / lustre / target / tgt_internal.h
index 14ce886..ebe3a1a 100644 (file)
@@ -55,13 +55,13 @@ struct tx_arg {
        tx_exec_func_t           exec_fn;
        tx_exec_func_t           undo_fn;
        struct dt_object        *object;
-       char                    *file;
+       const char              *file;
        struct object_update_reply *reply;
        int                      line;
        int                      index;
        union {
                struct {
-                       const struct dt_rec     *rec;
+                       struct dt_insert_rec     rec;
                        const struct dt_key     *key;
                } insert;
                struct {
@@ -91,13 +91,11 @@ struct tx_arg {
        } u;
 };
 
-#define TX_MAX_OPS       10
 struct thandle_exec_args {
        struct thandle          *ta_handle;
-       struct dt_device        *ta_dev;
-       struct tx_arg            ta_args[TX_MAX_OPS];
-       int                      ta_err;
-       int                      ta_argno;   /* used args */
+       int                     ta_argno;   /* used args */
+       int                     ta_alloc_args; /* allocated args count */
+       struct tx_arg           **ta_args;
 };
 
 /**
@@ -138,6 +136,7 @@ struct tgt_thread_info {
                } update;
        } tti_u;
        struct lfsck_request tti_lr;
+       struct dt_insert_rec tti_rec;
 };
 
 extern struct lu_context_key tgt_thread_key;
@@ -185,18 +184,22 @@ int out_handle(struct tgt_session_info *tsi);
        __out_tx_xattr_set(info, obj, buf, name, fl, th, reply, idx,    \
                           __FILE__, __LINE__)
 
+#define out_tx_xattr_del(info, obj, name, th, reply, idx)      \
+       __out_tx_xattr_del(info, obj, name, th, reply, idx,     \
+                          __FILE__, __LINE__)
+
 #define out_tx_ref_add(info, obj, th, reply, idx) \
        __out_tx_ref_add(info, obj, th, reply, idx, __FILE__, __LINE__)
 
 #define out_tx_ref_del(info, obj, th, reply, idx) \
        __out_tx_ref_del(info, obj, th, reply, idx, __FILE__, __LINE__)
 
-#define out_tx_index_insert(info, obj, th, name, fid, reply, idx) \
-       __out_tx_index_insert(info, obj, th, name, fid, reply, idx, \
+#define out_tx_index_insert(info, obj, rec, key, th, reply, idx) \
+       __out_tx_index_insert(info, obj, rec, key, th, reply, idx, \
                              __FILE__, __LINE__)
 
-#define out_tx_index_delete(info, obj, th, name, reply, idx) \
-       __out_tx_index_delete(info, obj, th, name, reply, idx, \
+#define out_tx_index_delete(info, obj, key, th, reply, idx) \
+       __out_tx_index_delete(info, obj, key, th, reply, idx, \
                              __FILE__, __LINE__)
 
 #define out_tx_destroy(info, obj, th, reply, idx) \