diff options
Diffstat (limited to 'include/linux/res_counter.h')
| -rw-r--r-- | include/linux/res_counter.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h index fcb9884df618..a5930cb66145 100644 --- a/include/linux/res_counter.h +++ b/include/linux/res_counter.h | |||
| @@ -182,6 +182,26 @@ static inline bool res_counter_check_under_limit(struct res_counter *cnt) | |||
| 182 | return ret; | 182 | return ret; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | /** | ||
| 186 | * res_counter_check_margin - check if the counter allows charging | ||
| 187 | * @cnt: the resource counter to check | ||
| 188 | * @bytes: the number of bytes to check the remaining space against | ||
| 189 | * | ||
| 190 | * Returns a boolean value on whether the counter can be charged | ||
| 191 | * @bytes or whether this would exceed the limit. | ||
| 192 | */ | ||
| 193 | static inline bool res_counter_check_margin(struct res_counter *cnt, | ||
| 194 | unsigned long bytes) | ||
| 195 | { | ||
| 196 | bool ret; | ||
| 197 | unsigned long flags; | ||
| 198 | |||
| 199 | spin_lock_irqsave(&cnt->lock, flags); | ||
| 200 | ret = cnt->limit - cnt->usage >= bytes; | ||
| 201 | spin_unlock_irqrestore(&cnt->lock, flags); | ||
| 202 | return ret; | ||
| 203 | } | ||
| 204 | |||
| 185 | static inline bool res_counter_check_under_soft_limit(struct res_counter *cnt) | 205 | static inline bool res_counter_check_under_soft_limit(struct res_counter *cnt) |
| 186 | { | 206 | { |
| 187 | bool ret; | 207 | bool ret; |
