aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2015-02-22 11:58:50 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2015-03-25 20:28:11 -0400
commite2e40f2c1ed433c5e224525c8c862fd32e5d3df2 (patch)
tree6210d9452c526157744b0d83454eaea20bcf9a0e /include
parent04b2fa9f8f36ec6fb6fd1c9dc9df6fff0cd27323 (diff)
fs: move struct kiocb to fs.h
struct kiocb now is a generic I/O container, so move it to fs.h. Also do a #include diet for aio.h while we're at it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r--include/linux/aio.h31
-rw-r--r--include/linux/fs.h22
-rw-r--r--include/net/sock.h1
3 files changed, 23 insertions, 31 deletions
diff --git a/include/linux/aio.h b/include/linux/aio.h
index 5c40b61285ac..9eb42dbc5582 100644
--- a/include/linux/aio.h
+++ b/include/linux/aio.h
@@ -1,52 +1,23 @@
1#ifndef __LINUX__AIO_H 1#ifndef __LINUX__AIO_H
2#define __LINUX__AIO_H 2#define __LINUX__AIO_H
3 3
4#include <linux/list.h>
5#include <linux/workqueue.h>
6#include <linux/aio_abi.h> 4#include <linux/aio_abi.h>
7#include <linux/uio.h>
8#include <linux/rcupdate.h>
9
10#include <linux/atomic.h>
11 5
12struct kioctx; 6struct kioctx;
13struct kiocb; 7struct kiocb;
8struct mm_struct;
14 9
15#define KIOCB_KEY 0 10#define KIOCB_KEY 0
16 11
17typedef int (kiocb_cancel_fn)(struct kiocb *); 12typedef int (kiocb_cancel_fn)(struct kiocb *);
18 13
19#define IOCB_EVENTFD (1 << 0)
20
21struct kiocb {
22 struct file *ki_filp;
23 loff_t ki_pos;
24 void (*ki_complete)(struct kiocb *iocb, long ret, long ret2);
25 void *private;
26 int ki_flags;
27};
28
29static inline bool is_sync_kiocb(struct kiocb *kiocb)
30{
31 return kiocb->ki_complete == NULL;
32}
33
34static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
35{
36 *kiocb = (struct kiocb) {
37 .ki_filp = filp,
38 };
39}
40
41/* prototypes */ 14/* prototypes */
42#ifdef CONFIG_AIO 15#ifdef CONFIG_AIO
43struct mm_struct;
44extern void exit_aio(struct mm_struct *mm); 16extern void exit_aio(struct mm_struct *mm);
45extern long do_io_submit(aio_context_t ctx_id, long nr, 17extern long do_io_submit(aio_context_t ctx_id, long nr,
46 struct iocb __user *__user *iocbpp, bool compat); 18 struct iocb __user *__user *iocbpp, bool compat);
47void kiocb_set_cancel_fn(struct kiocb *req, kiocb_cancel_fn *cancel); 19void kiocb_set_cancel_fn(struct kiocb *req, kiocb_cancel_fn *cancel);
48#else 20#else
49struct mm_struct;
50static inline void exit_aio(struct mm_struct *mm) { } 21static inline void exit_aio(struct mm_struct *mm) { }
51static inline long do_io_submit(aio_context_t ctx_id, long nr, 22static inline long do_io_submit(aio_context_t ctx_id, long nr,
52 struct iocb __user * __user *iocbpp, 23 struct iocb __user * __user *iocbpp,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 447932aed1e1..48c1472bde4a 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -314,6 +314,28 @@ struct page;
314struct address_space; 314struct address_space;
315struct writeback_control; 315struct writeback_control;
316 316
317#define IOCB_EVENTFD (1 << 0)
318
319struct kiocb {
320 struct file *ki_filp;
321 loff_t ki_pos;
322 void (*ki_complete)(struct kiocb *iocb, long ret, long ret2);
323 void *private;
324 int ki_flags;
325};
326
327static inline bool is_sync_kiocb(struct kiocb *kiocb)
328{
329 return kiocb->ki_complete == NULL;
330}
331
332static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
333{
334 *kiocb = (struct kiocb) {
335 .ki_filp = filp,
336 };
337}
338
317/* 339/*
318 * "descriptor" for what we're up to with a read. 340 * "descriptor" for what we're up to with a read.
319 * This allows us to use the same read code yet 341 * This allows us to use the same read code yet
diff --git a/include/net/sock.h b/include/net/sock.h
index ab186b1d31ff..71c1300025e2 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -57,7 +57,6 @@
57#include <linux/page_counter.h> 57#include <linux/page_counter.h>
58#include <linux/memcontrol.h> 58#include <linux/memcontrol.h>
59#include <linux/static_key.h> 59#include <linux/static_key.h>
60#include <linux/aio.h>
61#include <linux/sched.h> 60#include <linux/sched.h>
62 61
63#include <linux/filter.h> 62#include <linux/filter.h>