Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Oct 2015 23:33:12 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Mark Johnston <markj@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r288628 - head/sys/kern
Message-ID:  <20151003213311.GB57303@stack.nl>
In-Reply-To: <201510031937.t93Jbgkk077518@repo.freebsd.org>
References:  <201510031937.t93Jbgkk077518@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Oct 03, 2015 at 07:37:42PM +0000, Mark Johnston wrote:
> Author: markj
> Date: Sat Oct  3 19:37:41 2015
> New Revision: 288628
> URL: https://svnweb.freebsd.org/changeset/base/288628

> Log:
>   The return value of posix_fadvise(2) is just an error status, so
>   sys_posix_fadvise() should simply return the errno (or 0) to syscallenter()
>   rather than setting a return value.

>   MFC after:	1 week

> Modified:
>   head/sys/kern/vfs_syscalls.c
> 
> Modified: head/sys/kern/vfs_syscalls.c
> ==============================================================================
> --- head/sys/kern/vfs_syscalls.c	Sat Oct  3 19:27:52 2015	(r288627)
> +++ head/sys/kern/vfs_syscalls.c	Sat Oct  3 19:37:41 2015	(r288628)
> @@ -4663,7 +4663,6 @@ int
>  sys_posix_fadvise(struct thread *td, struct posix_fadvise_args *uap)
>  {
>  
> -	td->td_retval[0] = kern_posix_fadvise(td, uap->fd, uap->offset,
> -	    uap->len, uap->advice);
> -	return (0);
> +	return (kern_posix_fadvise(td, uap->fd, uap->offset, uap->len,
> +	    uap->advice));
>  }

This change makes the code match the man page, but in fact, the code was
right and the man page is wrong. Per POSIX, posix_fadvise() shall return
0 on success and an error number on failure, and need not modify errno.

Also, this kind of ABI change in general is almost always a bad idea
when the function is already part of a stable branch.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151003213311.GB57303>