[Concept,06/14] linux: percpu_counter: Add initialized field

Message ID 20251230205157.3383926-7-sjg@u-boot.org
State New
Headers
Series ext4l: Linux adaptation patches for ext4 write support |

Commit Message

Simon Glass Dec. 30, 2025, 8:51 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Add an 'initialized' field to struct percpu_counter to track whether
a counter has been properly initialized. Update percpu_counter_init()
to set this field and percpu_counter_initialized() to check it.

This is needed because ext4 uses percpu_counter_initialized() to check
if counters are ready before accessing them.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 include/linux/percpu_counter.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Patch

diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h
index 58d52d01310..6a8544f7f79 100644
--- a/include/linux/percpu_counter.h
+++ b/include/linux/percpu_counter.h
@@ -15,6 +15,7 @@ 
 struct percpu_counter {
 	s64 count;
 	s64 counter;	/* Alias for count - some code uses this name */
+	bool initialized;  /* Track if counter has been initialized */
 };
 
 static inline int percpu_counter_init(struct percpu_counter *fbc, s64 amount,
@@ -22,6 +23,7 @@  static inline int percpu_counter_init(struct percpu_counter *fbc, s64 amount,
 {
 	fbc->count = amount;
 	fbc->counter = amount;
+	fbc->initialized = true;
 	return 0;
 }
 
@@ -76,7 +78,7 @@  static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
 
 static inline bool percpu_counter_initialized(struct percpu_counter *fbc)
 {
-	return true;
+	return fbc->initialized;
 }
 
 #endif /* _LINUX_PERCPU_COUNTER_H */