mirror of https://github.com/schoebel/mars
trans_logger: never collect non-persistent data for writeback
This commit is contained in:
parent
f569a3f604
commit
71429b5bee
|
@ -405,6 +405,10 @@ void hash_extend(struct trans_logger_brick *brick, loff_t *_pos, int *_len, stru
|
|||
if (test_a->is_collected)
|
||||
goto collision;
|
||||
|
||||
// no writeback of non-persistent data
|
||||
if (!test_a->is_persistent)
|
||||
goto collision;
|
||||
|
||||
// extend the search region when necessary
|
||||
diff = pos - test->ref_pos;
|
||||
if (diff > 0) {
|
||||
|
@ -1446,6 +1450,7 @@ void phase0_endio(void *private, int error)
|
|||
orig_mref = orig_mref_a->object;
|
||||
CHECK_PTR(orig_mref, err);
|
||||
|
||||
orig_mref_a->is_persistent = true;
|
||||
qq_dec_flying(&brick->q_phase[0]);
|
||||
|
||||
/* Pin mref->ref_count so it can't go away
|
||||
|
|
|
@ -128,6 +128,7 @@ struct trans_logger_mref_aspect {
|
|||
bool is_collected;
|
||||
bool is_fired;
|
||||
bool is_completed;
|
||||
bool is_persistent;
|
||||
struct timespec stamp;
|
||||
loff_t log_pos;
|
||||
struct generic_callback cb;
|
||||
|
|
Loading…
Reference in New Issue