diff -u linux/fs/aio.c-SYS linux/fs/aio.c --- linux/fs/aio.c-SYS 2003-06-30 15:47:57.000000000 +0200 +++ linux/fs/aio.c 2003-06-30 15:48:01.000000000 +0200 @@ -538,7 +538,7 @@ /* Lookup an ioctx id. ioctx_list is lockless for reads. * FIXME: this is O(n) and is only suitable for development. */ -static inline struct kioctx *lookup_ioctx(unsigned long ctx_id) +inline struct kioctx *lookup_ioctx(unsigned long ctx_id) { struct kioctx *ioctx; struct mm_struct *mm; @@ -902,7 +902,7 @@ return -EINVAL; } -static inline int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, +int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, struct iocb *iocb) { ssize_t (*op)(struct file *, struct kiocb *, struct iocb *); diff -u linux/include/linux/aio.h-SYS linux/include/linux/aio.h --- linux/include/linux/aio.h-SYS 2003-06-30 15:47:57.000000000 +0200 +++ linux/include/linux/aio.h 2003-06-30 15:48:01.000000000 +0200 @@ -105,6 +105,11 @@ struct mm_struct; extern void FASTCALL(exit_aio(struct mm_struct *mm)); +/* private, but used by 32bit emulation: */ +extern struct kioctx *lookup_ioctx(unsigned long ctx_id); +extern int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, + struct iocb *iocb); + #define get_ioctx(kioctx) do { if (unlikely(atomic_read(&(kioctx)->users) <= 0)) BUG(); atomic_inc(&(kioctx)->users); } while (0) #define put_ioctx(kioctx) do { if (unlikely(atomic_dec_and_test(&(kioctx)->users))) __put_ioctx(kioctx); else if (unlikely(atomic_read(&(kioctx)->users) < 0)) BUG(); } while (0)