#define zfs_refcount_add refcount_add
#endif
-extern struct dt_body_operations osd_body_scrub_ops;
-extern struct dt_body_operations osd_body_ops;
+extern const struct dt_body_operations osd_body_scrub_ops;
+extern const struct dt_body_operations osd_body_ops;
extern struct kmem_cache *osd_object_kmem;
/**
int osd_statfs(const struct lu_env *, struct dt_device *, struct obd_statfs *,
struct obd_statfs_info *);
extern const struct dt_index_operations osd_acct_index_ops;
-extern struct lu_device_operations osd_lu_ops;
-extern struct dt_index_operations osd_dir_ops;
+extern const struct lu_device_operations osd_lu_ops;
+extern const struct dt_index_operations osd_dir_ops;
int osd_declare_quota(const struct lu_env *env, struct osd_device *osd,
qid_t uid, qid_t gid, qid_t projid, long long space,
struct osd_thandle *oh,
uint64_t oid, dnode_t **dnp);
/* osd_oi.c */
-int osd_oi_init(const struct lu_env *env, struct osd_device *o);
+int osd_oi_init(const struct lu_env *env, struct osd_device *o, bool reset);
void osd_oi_fini(const struct lu_env *env, struct osd_device *o);
int osd_fid_lookup(const struct lu_env *env,
struct osd_device *, const struct lu_fid *, uint64_t *);
nvlist_t **sa);
/* osd_scrub.c */
-int osd_scrub_setup(const struct lu_env *env, struct osd_device *dev);
+int osd_scrub_setup(const struct lu_env *env, struct osd_device *dev,
+ bool resetoi);
void osd_scrub_cleanup(const struct lu_env *env, struct osd_device *dev);
int osd_scrub_start(const struct lu_env *env, struct osd_device *dev,
__u32 flags);
int osd_oii_lookup(struct osd_device *dev, const struct lu_fid *fid,
uint64_t *oid);
+/**
+ * Basic transaction credit op
+ */
+enum dt_txn_op {
+ DTO_INDEX_INSERT,
+ DTO_INDEX_DELETE,
+ DTO_INDEX_UPDATE,
+ DTO_NR
+};
+
+int osd_scrub_refresh_mapping(const struct lu_env *env,
+ struct osd_device *dev,
+ const struct lu_fid *fid,
+ uint64_t oid, enum dt_txn_op ops,
+ bool force, const char *name);
+
+
/* osd_xattr.c */
int __osd_sa_xattr_schedule_update(const struct lu_env *env,
struct osd_object *obj,