])
#
+# 3.12 ki_left removed from struct kiocb
+#
+AC_DEFUN([LC_KIOCB_KI_LEFT],
+[AC_MSG_CHECKING([if struct kiocb with ki_left member])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/aio.h>
+],[
+ ((struct kiocb*)0)->ki_left = 0;
+],[
+ AC_DEFINE(HAVE_KIOCB_KI_LEFT, 1, [ki_left exist])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+#
# LC_PROG_LINUX
#
# Lustre linux kernel checks
# 3.12
LC_OLDSIZE_TRUNCATE_PAGECACHE
+ LC_KIOCB_KI_LEFT
#
if test x$enable_server != xno ; then
local_iov->iov_len = count;
init_sync_kiocb(kiocb, file);
kiocb->ki_pos = *ppos;
+#ifdef HAVE_KIOCB_KI_LEFT
kiocb->ki_left = count;
+#else
+ kiocb->ki_nbytes = count;
+#endif
result = ll_file_aio_read(kiocb, local_iov, 1, kiocb->ki_pos);
*ppos = kiocb->ki_pos;
local_iov->iov_len = count;
init_sync_kiocb(kiocb, file);
kiocb->ki_pos = *ppos;
+#ifdef HAVE_KIOCB_KI_LEFT
kiocb->ki_left = count;
+#else
+ kiocb->ki_nbytes = count;
+#endif
result = ll_file_aio_write(kiocb, local_iov, 1, kiocb->ki_pos);
*ppos = kiocb->ki_pos;