[Linux-cachefs] [PATCH] fscache: add fscache_cookie_state_dropped helper
Jeff Layton
jlayton at kernel.org
Fri Jan 14 13:34:30 UTC 2022
Signed-off-by: Jeff Layton <jlayton at kernel.org>
---
fs/fscache/cookie.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
index 9bb1ab5fe5ed..f9ebaaca5eb5 100644
--- a/fs/fscache/cookie.c
+++ b/fs/fscache/cookie.c
@@ -372,17 +372,22 @@ static struct fscache_cookie *fscache_alloc_cookie(
return NULL;
}
+static inline bool fscache_cookie_state_dropped(enum fscache_cookie_state *statep)
+{
+ return READ_ONCE(*statep) == FSCACHE_COOKIE_STATE_DROPPED;
+}
+
static void fscache_wait_on_collision(struct fscache_cookie *candidate,
struct fscache_cookie *wait_for)
{
enum fscache_cookie_state *statep = &wait_for->state;
- wait_var_event_timeout(statep, READ_ONCE(*statep) == FSCACHE_COOKIE_STATE_DROPPED,
+ wait_var_event_timeout(statep, fscache_cookie_state_dropped(statep),
20 * HZ);
- if (READ_ONCE(*statep) != FSCACHE_COOKIE_STATE_DROPPED) {
+ if (!fscache_cookie_state_dropped(statep)) {
pr_notice("Potential collision c=%08x old: c=%08x",
candidate->debug_id, wait_for->debug_id);
- wait_var_event(statep, READ_ONCE(*statep) == FSCACHE_COOKIE_STATE_DROPPED);
+ wait_var_event(statep, fscache_cookie_state_dropped(statep));
}
}
--
2.34.1
More information about the Linux-cachefs
mailing list