diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-25 10:28:20 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:26 -0400 |
commit | fbec3b8800ac8244ce751d0ba5b83d94ee48fc76 (patch) | |
tree | 7dc294ade316a64524431c7917c62e79e3185699 /fs/bcachefs/journal_types.h | |
parent | 506bac7e59d93cfd883dab0697ed91850f319be6 (diff) | |
download | linux-stable-fbec3b8800ac8244ce751d0ba5b83d94ee48fc76.tar.gz linux-stable-fbec3b8800ac8244ce751d0ba5b83d94ee48fc76.tar.bz2 linux-stable-fbec3b8800ac8244ce751d0ba5b83d94ee48fc76.zip |
bcachefs: Kill JOURNAL_NEED_WRITE
This replaces the journal flag JOURNAL_NEED_WRITE with per-journal buf
state - more explicit, and solving a race in the old code that would
lead to entries being opened and written unnecessarily.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/journal_types.h')
-rw-r--r-- | fs/bcachefs/journal_types.h | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/bcachefs/journal_types.h b/fs/bcachefs/journal_types.h index 3012b374625f..36843fd0c7da 100644 --- a/fs/bcachefs/journal_types.h +++ b/fs/bcachefs/journal_types.h @@ -25,6 +25,8 @@ struct journal_buf { struct closure_waitlist wait; u64 last_seq; /* copy of data->last_seq */ + unsigned long expires; + u64 flush_time; unsigned buf_size; /* size in bytes of @data */ unsigned sectors; /* maximum size for current entry */ @@ -139,16 +141,9 @@ enum journal_space_from { journal_space_nr, }; -/* - * JOURNAL_NEED_WRITE - current (pending) journal entry should be written ASAP, - * either because something's waiting on the write to complete or because it's - * been dirty too long and the timer's expired. - */ - enum { JOURNAL_REPLAY_DONE, JOURNAL_STARTED, - JOURNAL_NEED_WRITE, JOURNAL_MAY_GET_UNRESERVED, JOURNAL_MAY_SKIP_FLUSH, }; @@ -266,7 +261,6 @@ struct journal { unsigned long last_flush_write; u64 res_get_blocked_start; - u64 need_write_time; u64 write_start_time; u64 nr_flush_writes; |