|
@@ -9,44 +9,22 @@
|
|
|
|
|
|
#include <linux/atomic.h>
|
|
|
|
|
|
-#define AIO_MAXSEGS 4
|
|
|
-#define AIO_KIOGRP_NR_ATOMIC 8
|
|
|
-
|
|
|
struct kioctx;
|
|
|
|
|
|
-/* Notes on cancelling a kiocb:
|
|
|
- * If a kiocb is cancelled, aio_complete may return 0 to indicate
|
|
|
- * that cancel has not yet disposed of the kiocb. All cancel
|
|
|
- * operations *must* call aio_put_req to dispose of the kiocb
|
|
|
- * to guard against races with the completion code.
|
|
|
- */
|
|
|
-#define KIOCB_C_CANCELLED 0x01
|
|
|
-#define KIOCB_C_COMPLETE 0x02
|
|
|
-
|
|
|
#define KIOCB_SYNC_KEY (~0U)
|
|
|
|
|
|
/* ki_flags bits */
|
|
|
-/*
|
|
|
- * This may be used for cancel/retry serialization in the future, but
|
|
|
- * for now it's unused and we probably don't want modules to even
|
|
|
- * think they can use it.
|
|
|
- */
|
|
|
-/* #define KIF_LOCKED 0 */
|
|
|
#define KIF_KICKED 1
|
|
|
#define KIF_CANCELLED 2
|
|
|
|
|
|
-#define kiocbTryLock(iocb) test_and_set_bit(KIF_LOCKED, &(iocb)->ki_flags)
|
|
|
#define kiocbTryKick(iocb) test_and_set_bit(KIF_KICKED, &(iocb)->ki_flags)
|
|
|
|
|
|
-#define kiocbSetLocked(iocb) set_bit(KIF_LOCKED, &(iocb)->ki_flags)
|
|
|
#define kiocbSetKicked(iocb) set_bit(KIF_KICKED, &(iocb)->ki_flags)
|
|
|
#define kiocbSetCancelled(iocb) set_bit(KIF_CANCELLED, &(iocb)->ki_flags)
|
|
|
|
|
|
-#define kiocbClearLocked(iocb) clear_bit(KIF_LOCKED, &(iocb)->ki_flags)
|
|
|
#define kiocbClearKicked(iocb) clear_bit(KIF_KICKED, &(iocb)->ki_flags)
|
|
|
#define kiocbClearCancelled(iocb) clear_bit(KIF_CANCELLED, &(iocb)->ki_flags)
|
|
|
|
|
|
-#define kiocbIsLocked(iocb) test_bit(KIF_LOCKED, &(iocb)->ki_flags)
|
|
|
#define kiocbIsKicked(iocb) test_bit(KIF_KICKED, &(iocb)->ki_flags)
|
|
|
#define kiocbIsCancelled(iocb) test_bit(KIF_CANCELLED, &(iocb)->ki_flags)
|
|
|
|
|
@@ -207,8 +185,6 @@ struct kioctx {
|
|
|
};
|
|
|
|
|
|
/* prototypes */
|
|
|
-extern unsigned aio_max_size;
|
|
|
-
|
|
|
#ifdef CONFIG_AIO
|
|
|
extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb);
|
|
|
extern int aio_put_req(struct kiocb *iocb);
|