svn commit: r278521 - head/sys/fs/autofs

Bryan Drewery bdrewery at FreeBSD.org
Tue Feb 10 16:34:27 UTC 2015


On 2/10/2015 10:17 AM, Edward Tomasz Napierala wrote:
> Author: trasz
> Date: Tue Feb 10 16:17:16 2015
> New Revision: 278521
> URL: https://svnweb.freebsd.org/changeset/base/278521
> 
> Log:
>   Restore ABI compatibility, broken in r273127.  Note that while this fixes
>   ABI with 10.1, it breaks ABI for 11-CURRENT, so rebuild of automountd(8)
>   is neccessary.

I was going to say __FreeBSD_version should probably be bumped, but I
suppose it's unlikely there are any consumers outside of automountd(8)
already. An entry in UPDATING may be worth adding for head noting the
rebuild need. We don't all read commit logs.

>   
>   MFC after:	2 weeks
>   Sponsored by:	The FreeBSD Foundation
> 
> Modified:
>   head/sys/fs/autofs/autofs.c
>   head/sys/fs/autofs/autofs_ioctl.h
> 
> Modified: head/sys/fs/autofs/autofs.c
> ==============================================================================
> --- head/sys/fs/autofs/autofs.c	Tue Feb 10 16:01:16 2015	(r278520)
> +++ head/sys/fs/autofs/autofs.c	Tue Feb 10 16:17:16 2015	(r278521)
> @@ -584,6 +584,34 @@ autofs_ioctl_request(struct autofs_daemo
>  }
>  
>  static int
> +autofs_ioctl_done_101(struct autofs_daemon_done_101 *add)
> +{
> +	struct autofs_request *ar;
> +
> +	sx_xlock(&autofs_softc->sc_lock);
> +	TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) {
> +		if (ar->ar_id == add->add_id)
> +			break;
> +	}
> +
> +	if (ar == NULL) {
> +		sx_xunlock(&autofs_softc->sc_lock);
> +		AUTOFS_DEBUG("id %d not found", add->add_id);
> +		return (ESRCH);
> +	}
> +
> +	ar->ar_error = add->add_error;
> +	ar->ar_wildcards = true;
> +	ar->ar_done = true;
> +	ar->ar_in_progress = false;
> +	cv_broadcast(&autofs_softc->sc_cv);
> +
> +	sx_xunlock(&autofs_softc->sc_lock);
> +
> +	return (0);
> +}
> +
> +static int
>  autofs_ioctl_done(struct autofs_daemon_done *add)
>  {
>  	struct autofs_request *ar;
> @@ -658,6 +686,9 @@ autofs_ioctl(struct cdev *dev, u_long cm
>  	case AUTOFSREQUEST:
>  		return (autofs_ioctl_request(
>  		    (struct autofs_daemon_request *)arg));
> +	case AUTOFSDONE101:
> +		return (autofs_ioctl_done_101(
> +		    (struct autofs_daemon_done_101 *)arg));
>  	case AUTOFSDONE:
>  		return (autofs_ioctl_done(
>  		    (struct autofs_daemon_done *)arg));
> 
> Modified: head/sys/fs/autofs/autofs_ioctl.h
> ==============================================================================
> --- head/sys/fs/autofs/autofs_ioctl.h	Tue Feb 10 16:01:16 2015	(r278520)
> +++ head/sys/fs/autofs/autofs_ioctl.h	Tue Feb 10 16:17:16 2015	(r278521)
> @@ -71,6 +71,21 @@ struct autofs_daemon_request {
>  	char		adr_options[MAXPATHLEN];
>  };
>  
> +/*
> + * Compatibility with 10.1-RELEASE automountd(8).
> + */
> +struct autofs_daemon_done_101 {
> +	/*
> +	 * Identifier, copied from adr_id.
> +	 */
> +	int		add_id;
> +
> +	/*
> +	 * Error number, possibly returned to userland.
> +	 */
> +	int		add_error;
> +};
> +
>  struct autofs_daemon_done {
>  	/*
>  	 * Identifier, copied from adr_id.
> @@ -87,9 +102,15 @@ struct autofs_daemon_done {
>  	 * Error number, possibly returned to userland.
>  	 */
>  	int		add_error;
> +
> +	/*
> +	 * Reserved for future use.
> +	 */
> +	int		add_spare[7];
>  };
>  
>  #define	AUTOFSREQUEST	_IOR('I', 0x01, struct autofs_daemon_request)
> -#define	AUTOFSDONE	_IOW('I', 0x02, struct autofs_daemon_done)
> +#define	AUTOFSDONE101	_IOW('I', 0x02, struct autofs_daemon_done_101)
> +#define	AUTOFSDONE	_IOW('I', 0x03, struct autofs_daemon_done)
>  
>  #endif /* !AUTOFS_IOCTL_H */
> 


-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20150210/b0e57d16/attachment.sig>


More information about the svn-src-head mailing list