svn commit: r359604 - in stable/12/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux
Mark Johnston
markj at FreeBSD.org
Fri Apr 3 16:29:00 UTC 2020
Author: markj
Date: Fri Apr 3 16:28:39 2020
New Revision: 359604
URL: https://svnweb.freebsd.org/changeset/base/359604
Log:
MFC r355754, r355807 (trasz):
Add sync_file_range(2) implementation to linux(4).
Modified:
stable/12/sys/amd64/linux/linux_dummy.c
stable/12/sys/amd64/linux32/linux32_dummy.c
stable/12/sys/arm64/linux/linux_dummy.c
stable/12/sys/compat/linux/linux_file.c
stable/12/sys/compat/linux/linux_file.h
stable/12/sys/i386/linux/linux_dummy.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/amd64/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/amd64/linux/linux_dummy.c Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/amd64/linux/linux_dummy.c Fri Apr 3 16:28:39 2020 (r359604)
@@ -100,7 +100,6 @@ DUMMY(unshare);
/* Linux 2.6.17: */
DUMMY(splice);
DUMMY(tee);
-DUMMY(sync_file_range);
DUMMY(vmsplice);
/* Linux 2.6.18: */
DUMMY(move_pages);
Modified: stable/12/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- stable/12/sys/amd64/linux32/linux32_dummy.c Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/amd64/linux32/linux32_dummy.c Fri Apr 3 16:28:39 2020 (r359604)
@@ -105,7 +105,6 @@ DUMMY(migrate_pages);
DUMMY(unshare);
/* Linux 2.6.17: */
DUMMY(splice);
-DUMMY(sync_file_range);
DUMMY(tee);
DUMMY(vmsplice);
/* Linux 2.6.18: */
Modified: stable/12/sys/arm64/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/arm64/linux/linux_dummy.c Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/arm64/linux/linux_dummy.c Fri Apr 3 16:28:39 2020 (r359604)
@@ -102,7 +102,6 @@ DUMMY(unshare);
/* Linux 2.6.17: */
DUMMY(splice);
DUMMY(tee);
-DUMMY(sync_file_range);
DUMMY(vmsplice);
/* Linux 2.6.18: */
DUMMY(move_pages);
Modified: stable/12/sys/compat/linux/linux_file.c
==============================================================================
--- stable/12/sys/compat/linux/linux_file.c Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/compat/linux/linux_file.c Fri Apr 3 16:28:39 2020 (r359604)
@@ -997,10 +997,22 @@ linux_linkat(struct thread *td, struct linux_linkat_ar
}
int
-linux_fdatasync(td, uap)
- struct thread *td;
- struct linux_fdatasync_args *uap;
+linux_fdatasync(struct thread *td, struct linux_fdatasync_args *uap)
{
+
+ return (kern_fsync(td, uap->fd, false));
+}
+
+int
+linux_sync_file_range(struct thread *td, struct linux_sync_file_range_args *uap)
+{
+
+ if (uap->offset < 0 || uap->nbytes < 0 ||
+ (uap->flags & ~(LINUX_SYNC_FILE_RANGE_WAIT_BEFORE |
+ LINUX_SYNC_FILE_RANGE_WRITE |
+ LINUX_SYNC_FILE_RANGE_WAIT_AFTER)) != 0) {
+ return (EINVAL);
+ }
return (kern_fsync(td, uap->fd, false));
}
Modified: stable/12/sys/compat/linux/linux_file.h
==============================================================================
--- stable/12/sys/compat/linux/linux_file.h Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/compat/linux/linux_file.h Fri Apr 3 16:28:39 2020 (r359604)
@@ -127,4 +127,11 @@
#define LINUX_F_UNLCK 2
#endif
+/*
+ * sync_file_range flags
+ */
+#define LINUX_SYNC_FILE_RANGE_WAIT_BEFORE 1
+#define LINUX_SYNC_FILE_RANGE_WRITE 2
+#define LINUX_SYNC_FILE_RANGE_WAIT_AFTER 4
+
#endif /* !_LINUX_FILE_H_ */
Modified: stable/12/sys/i386/linux/linux_dummy.c
==============================================================================
--- stable/12/sys/i386/linux/linux_dummy.c Fri Apr 3 16:19:07 2020 (r359603)
+++ stable/12/sys/i386/linux/linux_dummy.c Fri Apr 3 16:28:39 2020 (r359604)
@@ -101,7 +101,6 @@ DUMMY(migrate_pages);
DUMMY(unshare);
/* Linux 2.6.17: */
DUMMY(splice);
-DUMMY(sync_file_range);
DUMMY(tee);
DUMMY(vmsplice);
/* Linux 2.6.18: */
More information about the svn-src-stable
mailing list