SPL_AC_SET_FS_PWD_WITH_CONST
SPL_AC_2ARGS_VFS_UNLINK
SPL_AC_4ARGS_VFS_RENAME
- SPL_AC_VFS_FSYNC
SPL_AC_2ARGS_VFS_FSYNC
SPL_AC_INODE_TRUNCATE_RANGE
SPL_AC_FS_STRUCT_SPINLOCK
])
])
-dnl #
-dnl # 2.6.29 API change,
-dnl # vfs_fsync() funcation added, prior to this use file_fsync().
-dnl #
-AC_DEFUN([SPL_AC_VFS_FSYNC],
- [AC_MSG_CHECKING([whether vfs_fsync() is available])
- SPL_LINUX_TRY_COMPILE_SYMBOL([
- #include <linux/fs.h>
- ], [
- (void) vfs_fsync;
- ], [vfs_fsync], [fs/sync.c], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_VFS_FSYNC, 1, [vfs_fsync() is available])
- ], [
- AC_MSG_RESULT(no)
- ])
-])
-
dnl #
dnl # 2.6.35 API change,
dnl # Unused 'struct dentry *' removed from vfs_fsync() prototype.
if (fp->f_op->fallocate)
error = fp->f_op->fallocate(fp, mode, offset, len);
#else
-# ifdef HAVE_INODE_FALLOCATE
+#ifdef HAVE_INODE_FALLOCATE
if (fp->f_dentry && fp->f_dentry->d_inode &&
fp->f_dentry->d_inode->i_op->fallocate)
error = fp->f_dentry->d_inode->i_op->fallocate(
fp->f_dentry->d_inode, mode, offset, len);
-# endif /* HAVE_INODE_FALLOCATE */
+#endif /* HAVE_INODE_FALLOCATE */
#endif /*HAVE_FILE_FALLOCATE */
return (error);
}
-#ifdef HAVE_VFS_FSYNC
-# ifdef HAVE_2ARGS_VFS_FSYNC
-# define spl_filp_fsync(fp, sync) vfs_fsync(fp, sync)
-# else
-# define spl_filp_fsync(fp, sync) vfs_fsync(fp, (fp)->f_dentry, sync)
-# endif /* HAVE_2ARGS_VFS_FSYNC */
+#ifdef HAVE_2ARGS_VFS_FSYNC
+#define spl_filp_fsync(fp, sync) vfs_fsync(fp, sync)
#else
-# include <linux/buffer_head.h>
-# define spl_filp_fsync(fp, sync) file_fsync(fp, (fp)->f_dentry, sync)
-#endif /* HAVE_VFS_FSYNC */
+#define spl_filp_fsync(fp, sync) vfs_fsync(fp, (fp)->f_dentry, sync)
+#endif /* HAVE_2ARGS_VFS_FSYNC */
#define spl_inode_lock(ip) mutex_lock(&(ip)->i_mutex)
#define spl_inode_unlock(ip) mutex_unlock(&(ip)->i_mutex)