diff options
Diffstat (limited to 'module/zfs')
-rw-r--r-- | module/zfs/zpl_file.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/module/zfs/zpl_file.c b/module/zfs/zpl_file.c index 2c84d700d..a22522028 100644 --- a/module/zfs/zpl_file.c +++ b/module/zfs/zpl_file.c @@ -130,12 +130,15 @@ zpl_fsync(struct file *filp, struct dentry *dentry, int datasync) return (error); } +#ifdef HAVE_FILE_AIO_FSYNC static int zpl_aio_fsync(struct kiocb *kiocb, int datasync) { struct file *filp = kiocb->ki_filp; return (zpl_fsync(filp, file_dentry(filp), datasync)); } +#endif + #elif defined(HAVE_FSYNC_WITHOUT_DENTRY) /* * Linux 2.6.35 - 3.0 API, @@ -161,11 +164,14 @@ zpl_fsync(struct file *filp, int datasync) return (error); } +#ifdef HAVE_FILE_AIO_FSYNC static int zpl_aio_fsync(struct kiocb *kiocb, int datasync) { return (zpl_fsync(kiocb->ki_filp, datasync)); } +#endif + #elif defined(HAVE_FSYNC_RANGE) /* * Linux 3.1 - 3.x API, @@ -196,11 +202,14 @@ zpl_fsync(struct file *filp, loff_t start, loff_t end, int datasync) return (error); } +#ifdef HAVE_FILE_AIO_FSYNC static int zpl_aio_fsync(struct kiocb *kiocb, int datasync) { return (zpl_fsync(kiocb->ki_filp, kiocb->ki_pos, -1, datasync)); } +#endif + #else #error "Unsupported fops->fsync() implementation" #endif @@ -838,7 +847,9 @@ const struct file_operations zpl_file_operations = { #endif .mmap = zpl_mmap, .fsync = zpl_fsync, +#ifdef HAVE_FILE_AIO_FSYNC .aio_fsync = zpl_aio_fsync, +#endif #ifdef HAVE_FILE_FALLOCATE .fallocate = zpl_fallocate, #endif /* HAVE_FILE_FALLOCATE */ |