* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2012, Intel Corporation.
+ * Copyright (c) 2011, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <lustre_export.h>
#include <lustre_update.h>
#include <lustre_disk.h>
+#include <lustre_lfsck.h>
struct lu_target {
struct obd_device *lut_obd;
struct sptlrpc_rule_set lut_sptlrpc_rset;
spinlock_t lut_flags_lock;
int lut_sec_level;
- unsigned int lut_mds_capa:1,
- lut_oss_capa:1,
- lut_syncjournal:1,
+ unsigned int lut_syncjournal:1,
lut_sync_lock_cancel:2,
/* e.g. OST node */
lut_no_reconstruct:1;
int tgt_sendpage(struct tgt_session_info *tsi, struct lu_rdpg *rdpg, int nob);
int tgt_validate_obdo(struct tgt_session_info *tsi, struct obdo *oa);
int tgt_sync(const struct lu_env *env, struct lu_target *tgt,
- struct dt_object *obj);
+ struct dt_object *obj, __u64 start, __u64 end);
int tgt_io_thread_init(struct ptlrpc_thread *thread);
void tgt_io_thread_done(struct ptlrpc_thread *thread);
int tgt_brw_read(struct tgt_session_info *tsi);
int tgt_brw_write(struct tgt_session_info *tsi);
int tgt_hpreq_handler(struct ptlrpc_request *req);
+void tgt_register_lfsck_in_notify(int (*notify)(const struct lu_env *,
+ struct dt_device *,
+ struct lfsck_request *,
+ struct thandle *));
+void tgt_register_lfsck_query(int (*query)(const struct lu_env *,
+ struct dt_device *,
+ struct lfsck_request *));
extern struct tgt_handler tgt_sec_ctx_handlers[];
+extern struct tgt_handler tgt_lfsck_handlers[];
extern struct tgt_handler tgt_obd_handlers[];
extern struct tgt_handler tgt_dlm_handlers[];
extern struct tgt_handler tgt_llog_handlers[];
TGT_RPC_HANDLER(FLD_QUERY, flags, name, fn, NULL, \
LUSTRE_MDS_VERSION)
+/* LFSCK handlers */
+#define TGT_LFSCK_HDL(flags, name, fn) \
+ TGT_RPC_HANDLER(LFSCK_FIRST_OPC, flags, name, fn, \
+ &RQF_ ## name, LUSTRE_OBD_VERSION)
+
/* Request with a format known in advance */
#define TGT_UPDATE_HDL(flags, name, fn) \
- TGT_RPC_HANDLER(UPDATE_OBJ, flags, name, fn, &RQF_ ## name, \
+ TGT_RPC_HANDLER(OUT_UPDATE, flags, name, fn, &RQF_ ## name, \
LUSTRE_MDS_VERSION)
#endif /* __LUSTRE_LU_TARGET_H */