diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 14:57:16 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 14:57:16 +0200 |
commit | 0565f49cfe937640c2347f6d7f40ad2f4e4f088b (patch) | |
tree | 6067447df39c37946bc2de3ee004f45957bf123e /fs/afs/internal.h | |
parent | ccf1e9e1c0072088420aad42797986d6e74366b5 (diff) | |
parent | 9395452b4aab7bc2475ef8935b4a4fb99d778d70 (diff) | |
download | talos-op-linux-0565f49cfe937640c2347f6d7f40ad2f4e4f088b.tar.gz talos-op-linux-0565f49cfe937640c2347f6d7f40ad2f4e4f088b.zip |
Merge tag 'v4.8-rc6' into devel
Linux 4.8-rc6
Diffstat (limited to 'fs/afs/internal.h')
-rw-r--r-- | fs/afs/internal.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 71d5982312f3..df976b2a7f40 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h @@ -609,17 +609,29 @@ extern void afs_proc_cell_remove(struct afs_cell *); */ extern int afs_open_socket(void); extern void afs_close_socket(void); +extern void afs_data_consumed(struct afs_call *, struct sk_buff *); extern int afs_make_call(struct in_addr *, struct afs_call *, gfp_t, const struct afs_wait_mode *); extern struct afs_call *afs_alloc_flat_call(const struct afs_call_type *, size_t, size_t); extern void afs_flat_call_destructor(struct afs_call *); -extern void afs_transfer_reply(struct afs_call *, struct sk_buff *); +extern int afs_transfer_reply(struct afs_call *, struct sk_buff *, bool); extern void afs_send_empty_reply(struct afs_call *); extern void afs_send_simple_reply(struct afs_call *, const void *, size_t); extern int afs_extract_data(struct afs_call *, struct sk_buff *, bool, void *, size_t); +static inline int afs_data_complete(struct afs_call *call, struct sk_buff *skb, + bool last) +{ + if (skb->len > 0) + return -EBADMSG; + afs_data_consumed(call, skb); + if (!last) + return -EAGAIN; + return 0; +} + /* * security.c */ |