]) # LC_IOV_ITER_RW
#
+# LC_HAVE_SYNC_READ_WRITE
+#
+# 4.1 new_sync_[read|write] no longer exported
+#
+AC_DEFUN([LC_HAVE_SYNC_READ_WRITE], [
+LB_CHECK_EXPORT([new_sync_read], [fs/read_write.c],
+ [AC_DEFINE(HAVE_SYNC_READ_WRITE, 1,
+ [new_sync_[read|write] is exported by the kernel])])
+]) # LC_HAVE_SYNC_READ_WRITE
+
+#
# LC_PROG_LINUX
#
# Lustre linux kernel checks
# 4.1.0
LC_IOV_ITER_RW
+ LC_HAVE_SYNC_READ_WRITE
#
AS_IF([test "x$enable_server" != xno], [
/* -o localflock - only provides locally consistent flock locks */
struct file_operations ll_file_operations = {
#ifdef HAVE_FILE_OPERATIONS_READ_WRITE_ITER
+# ifdef HAVE_SYNC_READ_WRITE
.read = new_sync_read,
- .read_iter = ll_file_read_iter,
.write = new_sync_write,
+# endif
+ .read_iter = ll_file_read_iter,
.write_iter = ll_file_write_iter,
#else /* !HAVE_FILE_OPERATIONS_READ_WRITE_ITER */
.read = ll_file_read,
struct file_operations ll_file_operations_flock = {
#ifdef HAVE_FILE_OPERATIONS_READ_WRITE_ITER
+# ifdef HAVE_SYNC_READ_WRITE
.read = new_sync_read,
- .read_iter = ll_file_read_iter,
.write = new_sync_write,
+# endif /* HAVE_SYNC_READ_WRITE */
+ .read_iter = ll_file_read_iter,
.write_iter = ll_file_write_iter,
#else /* !HAVE_FILE_OPERATIONS_READ_WRITE_ITER */
.read = ll_file_read,
/* These are for -o noflock - to return ENOSYS on flock calls */
struct file_operations ll_file_operations_noflock = {
#ifdef HAVE_FILE_OPERATIONS_READ_WRITE_ITER
+# ifdef HAVE_SYNC_READ_WRITE
.read = new_sync_read,
- .read_iter = ll_file_read_iter,
.write = new_sync_write,
+# endif /* HAVE_SYNC_READ_WRITE */
+ .read_iter = ll_file_read_iter,
.write_iter = ll_file_write_iter,
#else /* !HAVE_FILE_OPERATIONS_READ_WRITE_ITER */
.read = ll_file_read,