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