Commit 6f89dbce authored by Sowmini Varadhan's avatar Sowmini Varadhan Committed by David S. Miller

skbuff: export mm_[un]account_pinned_pages for other modules

RDS would like to use the helper functions for managing pinned pages
added by Commit a91dbff5 ("sock: ulimit on MSG_ZEROCOPY pages")
Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
Acked-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ee99b2d8
...@@ -466,6 +466,9 @@ struct ubuf_info { ...@@ -466,6 +466,9 @@ struct ubuf_info {
#define skb_uarg(SKB) ((struct ubuf_info *)(skb_shinfo(SKB)->destructor_arg)) #define skb_uarg(SKB) ((struct ubuf_info *)(skb_shinfo(SKB)->destructor_arg))
int mm_account_pinned_pages(struct mmpin *mmp, size_t size);
void mm_unaccount_pinned_pages(struct mmpin *mmp);
struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size); struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size);
struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size, struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size,
struct ubuf_info *uarg); struct ubuf_info *uarg);
......
...@@ -890,7 +890,7 @@ struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src) ...@@ -890,7 +890,7 @@ struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src)
} }
EXPORT_SYMBOL_GPL(skb_morph); EXPORT_SYMBOL_GPL(skb_morph);
static int mm_account_pinned_pages(struct mmpin *mmp, size_t size) int mm_account_pinned_pages(struct mmpin *mmp, size_t size)
{ {
unsigned long max_pg, num_pg, new_pg, old_pg; unsigned long max_pg, num_pg, new_pg, old_pg;
struct user_struct *user; struct user_struct *user;
...@@ -919,14 +919,16 @@ static int mm_account_pinned_pages(struct mmpin *mmp, size_t size) ...@@ -919,14 +919,16 @@ static int mm_account_pinned_pages(struct mmpin *mmp, size_t size)
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(mm_account_pinned_pages);
static void mm_unaccount_pinned_pages(struct mmpin *mmp) void mm_unaccount_pinned_pages(struct mmpin *mmp)
{ {
if (mmp->user) { if (mmp->user) {
atomic_long_sub(mmp->num_pg, &mmp->user->locked_vm); atomic_long_sub(mmp->num_pg, &mmp->user->locked_vm);
free_uid(mmp->user); free_uid(mmp->user);
} }
} }
EXPORT_SYMBOL_GPL(mm_unaccount_pinned_pages);
struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size) struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment