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: */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to