struct ost_id os_oi;
spinlock_t os_last_oid_lock;
struct mutex os_create_lock;
- cfs_atomic_t os_refc;
+ atomic_t os_refc;
struct dt_object *os_lastid_obj;
unsigned long os_destroys_in_progress:1;
};
ofd_syncjournal:1,
/* shall we grant space to clients not
* supporting OBD_CONNECT_GRANT_PARAM? */
- ofd_grant_compat_disable:1;
+ ofd_grant_compat_disable:1,
+ /* Protected by ofd_lastid_rwsem. */
+ ofd_lastid_rebuilding:1,
+ ofd_record_fid_accessed:1;
struct seq_server_site ofd_seq_site;
/* the limit of SOFT_SYNC RPCs that will trigger a soft sync */
unsigned int ofd_soft_sync_limit;
+ /* Protect ::ofd_lastid_rebuilding */
+ struct rw_semaphore ofd_lastid_rwsem;
+ __u64 ofd_lastid_gen;
};
static inline struct ofd_device *ofd_dev(struct lu_device *d)
/* Space used by the I/O, used by grant code */
unsigned long fti_used;
struct ost_lvb fti_lvb;
+ struct lfsck_request fti_lr;
};
extern void target_recovery_fini(struct obd_device *obd);
/* ofd_capa.c */
int ofd_update_capa_key(struct ofd_device *ofd, struct lustre_capa_key *key);
-int ofd_auth_capa(struct obd_export *exp, struct lu_fid *fid, obd_seq seq,
- struct lustre_capa *capa, __u64 opc);
+int ofd_auth_capa(struct obd_export *exp, const struct lu_fid *fid,
+ obd_seq seq, struct lustre_capa *capa, __u64 opc);
void ofd_free_capa_keys(struct ofd_device *ofd);
/* ofd_dev.c */
extern struct lu_context_key ofd_thread_key;
int ofd_postrecov(const struct lu_env *env, struct ofd_device *ofd);
+int ofd_fiemap_get(const struct lu_env *env, struct ofd_device *ofd,
+ struct lu_fid *fid, struct ll_user_fiemap *fiemap);
/* ofd_obd.c */
extern struct obd_ops ofd_obd_ops;
int ofd_statfs_internal(const struct lu_env *env, struct ofd_device *ofd,
struct obd_statfs *osfs, __u64 max_age,
int *from_cache);
-int ofd_orphans_destroy(const struct lu_env *env, struct obd_export *exp,
- struct ofd_device *ofd, struct obdo *oa);
int ofd_destroy_by_fid(const struct lu_env *env, struct ofd_device *ofd,
const struct lu_fid *fid, int orphan);
int ofd_statfs(const struct lu_env *env, struct obd_export *exp,
struct obd_statfs *osfs, __u64 max_age, __u32 flags);
+int ofd_obd_disconnect(struct obd_export *exp);
/* ofd_fs.c */
obd_id ofd_seq_last_oid(struct ofd_seq *oseq);
struct ofd_seq *ofd_seq_load(const struct lu_env *env, struct ofd_device *ofd,
obd_seq seq);
void ofd_seqs_fini(const struct lu_env *env, struct ofd_device *ofd);
+void ofd_seqs_free(const struct lu_env *env, struct ofd_device *ofd);
/* ofd_io.c */
int ofd_preprw(const struct lu_env *env,int cmd, struct obd_export *exp,
static inline
struct ofd_object *ofd_object_find_exists(const struct lu_env *env,
struct ofd_device *ofd,
- struct lu_fid *fid)
+ const struct lu_fid *fid)
{
struct ofd_object *fo;
int ofd_fmd_init(void);
void ofd_fmd_exit(void);
struct ofd_mod_data *ofd_fmd_find(struct obd_export *exp,
- struct lu_fid *fid);
+ const struct lu_fid *fid);
struct ofd_mod_data *ofd_fmd_get(struct obd_export *exp,
- struct lu_fid *fid);
+ const struct lu_fid *fid);
void ofd_fmd_put(struct obd_export *exp, struct ofd_mod_data *fmd);
void ofd_fmd_expire(struct obd_export *exp);
void ofd_fmd_cleanup(struct obd_export *exp);
#ifdef DO_FMD_DROP
-void ofd_fmd_drop(struct obd_export *exp, struct lu_fid *fid);
+void ofd_fmd_drop(struct obd_export *exp, const struct lu_fid *fid);
#else
#define ofd_fmd_drop(exp, fid) do {} while (0)
#endif