svn commit: r355754 - in head/sys: amd64/linux amd64/linux32 arm64/linux compat/linux i386/linux

Konstantin Belousov kostikbel at gmail.com
Sat Dec 14 17:26:43 UTC 2019


On Sat, Dec 14, 2019 at 01:37:17PM +0000, Edward Tomasz Napierala wrote:
> 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;
Why use K&R definitions in 2019 ?

> +{
> +
> +	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)
This function is defined using ANSI C method.

>  {
>  	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