svn commit: r355754 - in head/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux
Edward Tomasz Napierala
trasz at FreeBSD.org
Sat Dec 14 13:37:19 UTC 2019
Author: trasz
Date: Sat Dec 14 13:37:17 2019
New Revision: 355754
URL: https://svnweb.freebsd.org/changeset/base/355754
Log:
Add sync_file_range(2) implementation to linux(4); it's a thin wrapper
over the usual fsync(2).
This silences some warnings when running "apt-get upgrade".
Reviewed by: brooks, emaste
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D22371
Modified:
head/sys/amd64/linux/linux_dummy.c
head/sys/amd64/linux32/linux32_dummy.c
head/sys/arm64/linux/linux_dummy.c
head/sys/compat/linux/linux_file.c
head/sys/compat/linux/linux_file.h
head/sys/i386/linux/linux_dummy.c
Modified: head/sys/amd64/linux/linux_dummy.c
==============================================================================
--- head/sys/amd64/linux/linux_dummy.c Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/amd64/linux/linux_dummy.c Sat Dec 14 13:37:17 2019 (r355754)
@@ -99,7 +99,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: head/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- head/sys/amd64/linux32/linux32_dummy.c Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/amd64/linux32/linux32_dummy.c Sat Dec 14 13:37:17 2019 (r355754)
@@ -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: head/sys/arm64/linux/linux_dummy.c
==============================================================================
--- head/sys/arm64/linux/linux_dummy.c Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/arm64/linux/linux_dummy.c Sat Dec 14 13:37:17 2019 (r355754)
@@ -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: */
Modified: head/sys/compat/linux/linux_file.c
==============================================================================
--- head/sys/compat/linux/linux_file.c Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/compat/linux/linux_file.c Sat Dec 14 13:37:17 2019 (r355754)
@@ -908,6 +908,22 @@ linux_fdatasync(td, uap)
}
int
+linux_sync_file_range(td, uap)
+ 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));
+}
+
+int
linux_pread(struct thread *td, struct linux_pread_args *uap)
{
struct vnode *vp;
Modified: head/sys/compat/linux/linux_file.h
==============================================================================
--- head/sys/compat/linux/linux_file.h Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/compat/linux/linux_file.h Sat Dec 14 13:37:17 2019 (r355754)
@@ -134,4 +134,11 @@
#define LINUX_RENAME_EXCHANGE 0x00000002
#define LINUX_RENAME_WHITEOUT 0x00000004
+/*
+ * 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: head/sys/i386/linux/linux_dummy.c
==============================================================================
--- head/sys/i386/linux/linux_dummy.c Sat Dec 14 13:32:37 2019 (r355753)
+++ head/sys/i386/linux/linux_dummy.c Sat Dec 14 13:37:17 2019 (r355754)
@@ -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-all
mailing list