Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-16271 ptlrpc: fix eviction right after recovery
[fs/lustre-release.git]
/
lustre
/
include
/
lustre_scrub.h
diff --git
a/lustre/include/lustre_scrub.h
b/lustre/include/lustre_scrub.h
index
89bf956
..
f7fb5bd
100644
(file)
--- a/
lustre/include/lustre_scrub.h
+++ b/
lustre/include/lustre_scrub.h
@@
-264,6
+264,8
@@
struct lustre_scrub {
struct task_struct *os_task;
struct list_head os_inconsistent_items;
struct task_struct *os_task;
struct list_head os_inconsistent_items;
+ /* once inconsistent mapping can't be fixed, put into this list */
+ struct list_head os_stale_items;
/* write lock for scrub prep/update/post/checkpoint,
* read lock for scrub dump. */
/* write lock for scrub prep/update/post/checkpoint,
* read lock for scrub dump. */
@@
-284,6
+286,9
@@
struct lustre_scrub {
/* The time for next checkpoint, seconds */
time64_t os_time_next_checkpoint;
/* The time for next checkpoint, seconds */
time64_t os_time_next_checkpoint;
+ /* How long to wait to start scrubbing */
+ time64_t os_auto_scrub_interval;
+
/* How many objects have been checked since last checkpoint. */
__u64 os_new_checked;
__u64 os_pos_current;
/* How many objects have been checked since last checkpoint. */
__u64 os_new_checked;
__u64 os_pos_current;
@@
-345,7
+350,13
@@
void scrub_file_init(struct lustre_scrub *scrub, uuid_t uuid);
void scrub_file_reset(struct lustre_scrub *scrub, uuid_t uuid, u64 flags);
int scrub_file_load(const struct lu_env *env, struct lustre_scrub *scrub);
int scrub_file_store(const struct lu_env *env, struct lustre_scrub *scrub);
void scrub_file_reset(struct lustre_scrub *scrub, uuid_t uuid, u64 flags);
int scrub_file_load(const struct lu_env *env, struct lustre_scrub *scrub);
int scrub_file_store(const struct lu_env *env, struct lustre_scrub *scrub);
+bool scrub_needs_check(struct lustre_scrub *scrub, const struct lu_fid *fid,
+ u64 index);
int scrub_checkpoint(const struct lu_env *env, struct lustre_scrub *scrub);
int scrub_checkpoint(const struct lu_env *env, struct lustre_scrub *scrub);
+int scrub_thread_prep(const struct lu_env *env, struct lustre_scrub *scrub,
+ uuid_t uuid, u64 start);
+int scrub_thread_post(const struct lu_env *env, struct lustre_scrub *scrub,
+ int result);
int scrub_start(int (*threadfn)(void *data), struct lustre_scrub *scrub,
void *data, __u32 flags);
void scrub_stop(struct lustre_scrub *scrub);
int scrub_start(int (*threadfn)(void *data), struct lustre_scrub *scrub,
void *data, __u32 flags);
void scrub_stop(struct lustre_scrub *scrub);