aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sock.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/sock.h')
-rw-r--r--include/net/sock.h33
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 */
1215static 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 */
1226static 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 */
1237static 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