diff options
author | Thomas Bertschinger <tahbertschinger@gmail.com> | 2024-01-15 23:41:02 -0700 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-16 01:47:05 -0500 |
commit | f5baaf48e3e82b1caf9f5cd1207d4d6feba3a2e5 (patch) | |
tree | 59f7b0e4667df7a9d3d5a45725f2aaab3e79b4c5 /include/linux/ratelimit.h | |
parent | fb35dbfdc5a9446fbb856dae5542b23963e28b89 (diff) |
move Rust sources to top level, C sources into c_src
This moves the Rust sources out of rust_src/ and into the top level.
Running the bcachefs executable out of the development tree is now:
$ ./target/release/bcachefs command
or
$ cargo run --profile release -- command
instead of "./bcachefs command".
Building and installing is still:
$ make && make install
Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'include/linux/ratelimit.h')
-rw-r--r-- | include/linux/ratelimit.h | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/include/linux/ratelimit.h b/include/linux/ratelimit.h deleted file mode 100644 index 680181d2..00000000 --- a/include/linux/ratelimit.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef _LINUX_RATELIMIT_H -#define _LINUX_RATELIMIT_H - -#include <linux/printk.h> -#include <linux/sched.h> -#include <linux/spinlock.h> - -#define DEFAULT_RATELIMIT_INTERVAL (5 * HZ) -#define DEFAULT_RATELIMIT_BURST 10 - -/* issue num suppressed message on exit */ -#define RATELIMIT_MSG_ON_RELEASE 1 - -struct ratelimit_state { - raw_spinlock_t lock; /* protect the state */ - - int interval; - int burst; - int printed; - int missed; - unsigned long begin; - unsigned long flags; -}; - -#define RATELIMIT_STATE_INIT(name, interval_init, burst_init) { \ - .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ - .interval = interval_init, \ - .burst = burst_init, \ - } - -#define RATELIMIT_STATE_INIT_DISABLED \ - RATELIMIT_STATE_INIT(ratelimit_state, 0, DEFAULT_RATELIMIT_BURST) - -#define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) \ - \ - struct ratelimit_state name = \ - RATELIMIT_STATE_INIT(name, interval_init, burst_init) \ - -static inline void ratelimit_state_init(struct ratelimit_state *rs, - int interval, int burst) -{ - memset(rs, 0, sizeof(*rs)); - - raw_spin_lock_init(&rs->lock); - rs->interval = interval; - rs->burst = burst; -} - -static inline void ratelimit_default_init(struct ratelimit_state *rs) -{ - return ratelimit_state_init(rs, DEFAULT_RATELIMIT_INTERVAL, - DEFAULT_RATELIMIT_BURST); -} - -static inline void ratelimit_state_exit(struct ratelimit_state *rs) -{ - if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) - return; - - if (rs->missed) { - pr_warn("%s: %d output lines suppressed due to ratelimiting\n", - current->comm, rs->missed); - rs->missed = 0; - } -} - -static inline void -ratelimit_set_flags(struct ratelimit_state *rs, unsigned long flags) -{ - rs->flags = flags; -} - -extern struct ratelimit_state printk_ratelimit_state; - -extern int ___ratelimit(struct ratelimit_state *rs, const char *func); -#define __ratelimit(state) ___ratelimit(state, __func__) - -#ifdef CONFIG_PRINTK - -#define WARN_ON_RATELIMIT(condition, state) \ - WARN_ON((condition) && __ratelimit(state)) - -#define WARN_RATELIMIT(condition, format, ...) \ -({ \ - static DEFINE_RATELIMIT_STATE(_rs, \ - DEFAULT_RATELIMIT_INTERVAL, \ - DEFAULT_RATELIMIT_BURST); \ - int rtn = !!(condition); \ - \ - if (unlikely(rtn && __ratelimit(&_rs))) \ - WARN(rtn, format, ##__VA_ARGS__); \ - \ - rtn; \ -}) - -#else - -#define WARN_ON_RATELIMIT(condition, state) \ - WARN_ON(condition) - -#define WARN_RATELIMIT(condition, format, ...) \ -({ \ - int rtn = WARN(condition, format, ##__VA_ARGS__); \ - rtn; \ -}) - -#endif - -#endif /* _LINUX_RATELIMIT_H */ |