diff options
Diffstat (limited to 'include/net/sock.h')
-rw-r--r-- | include/net/sock.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 010e14a93c92..570c7a12b54e 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -1206,6 +1206,39 @@ static inline int skb_copy_to_page(struct sock *sk, char __user *from, | |||
1206 | return 0; | 1206 | return 0; |
1207 | } | 1207 | } |
1208 | 1208 | ||
1209 | /** | ||
1210 | * sk_wmem_alloc_get - returns write allocations | ||
1211 | * @sk: socket | ||
1212 | * | ||
1213 | * Returns sk_wmem_alloc minus initial offset of one | ||
1214 | */ | ||
1215 | static inline int sk_wmem_alloc_get(const struct sock *sk) | ||
1216 | { | ||
1217 | return atomic_read(&sk->sk_wmem_alloc) - 1; | ||
1218 | } | ||
1219 | |||
1220 | /** | ||
1221 | * sk_rmem_alloc_get - returns read allocations | ||
1222 | * @sk: socket | ||
1223 | * | ||
1224 | * Returns sk_rmem_alloc | ||
1225 | */ | ||
1226 | static inline int sk_rmem_alloc_get(const struct sock *sk) | ||
1227 | { | ||
1228 | return atomic_read(&sk->sk_rmem_alloc); | ||
1229 | } | ||
1230 | |||
1231 | /** | ||
1232 | * sk_has_allocations - check if allocations are outstanding | ||
1233 | * @sk: socket | ||
1234 | * | ||
1235 | * Returns true if socket has write or read allocations | ||
1236 | */ | ||
1237 | static inline int sk_has_allocations(const struct sock *sk) | ||
1238 | { | ||
1239 | return sk_wmem_alloc_get(sk) || sk_rmem_alloc_get(sk); | ||
1240 | } | ||
1241 | |||
1209 | /* | 1242 | /* |
1210 | * Queue a received datagram if it will fit. Stream and sequenced | 1243 | * Queue a received datagram if it will fit. Stream and sequenced |
1211 | * protocols can't normally use this as they need to fit buffers in | 1244 | * protocols can't normally use this as they need to fit buffers in |