This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/autofs.git#25aaf0b69441b4e7370a195cbf1c7988d0abef3d
		
			
				
	
	
		
			183 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| autofs-5.1.7 - remove redundant variables from mount_autofs_offset()
 | |
| 
 | |
| From: Ian Kent <raven@themaw.net>
 | |
| 
 | |
| The path to be mounted is the key in the passed in mapent.
 | |
| 
 | |
| Signed-off-by: Ian Kent <raven@themaw.net>
 | |
| ---
 | |
|  CHANGELOG           |    1 +
 | |
|  daemon/direct.c     |   42 +++++++++++++++++++-----------------------
 | |
|  include/automount.h |    2 +-
 | |
|  lib/mounts.c        |    2 +-
 | |
|  4 files changed, 22 insertions(+), 25 deletions(-)
 | |
| 
 | |
| diff --git a/CHANGELOG b/CHANGELOG
 | |
| index c4ebb52f..45be4783 100644
 | |
| --- a/CHANGELOG
 | |
| +++ b/CHANGELOG
 | |
| @@ -9,6 +9,7 @@
 | |
|  - fix is mounted check on non existent path.
 | |
|  - simplify cache_get_parent().
 | |
|  - set offset parent in update_offset_entry().
 | |
| +- remove redundant variables from mount_autofs_offset().
 | |
|  
 | |
|  25/01/2021 autofs-5.1.7
 | |
|  - make bind mounts propagation slave by default.
 | |
| diff --git a/daemon/direct.c b/daemon/direct.c
 | |
| index 9fe4903a..c41c680f 100644
 | |
| --- a/daemon/direct.c
 | |
| +++ b/daemon/direct.c
 | |
| @@ -611,7 +611,7 @@ force_umount:
 | |
|  	return rv;
 | |
|  }
 | |
|  
 | |
| -int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *root, const char *offset)
 | |
| +int mount_autofs_offset(struct autofs_point *ap, struct mapent *me)
 | |
|  {
 | |
|  	const char *str_offset = mount_type_str(t_offset);
 | |
|  	struct ioctl_ops *ops = get_ioctl_ops();
 | |
| @@ -623,7 +623,6 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 | |
|  	const char *hosts_map_name = "-hosts";
 | |
|  	const char *map_name = hosts_map_name;
 | |
|  	const char *type;
 | |
| -	char mountpoint[PATH_MAX];
 | |
|  	struct mnt_list *mnt;
 | |
|  
 | |
|  	if (ops->version && ap->flags & MOUNT_FLAG_REMOUNT) {
 | |
| @@ -681,11 +680,8 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 | |
|  			return MOUNT_OFFSET_OK;
 | |
|  	}
 | |
|  
 | |
| -	strcpy(mountpoint, root);
 | |
| -	strcat(mountpoint, offset);
 | |
| -
 | |
|  	/* In case the directory doesn't exist, try to mkdir it */
 | |
| -	if (mkdir_path(mountpoint, mp_mode) < 0) {
 | |
| +	if (mkdir_path(me->key, mp_mode) < 0) {
 | |
|  		if (errno == EEXIST) {
 | |
|  			/*
 | |
|  			 * If the mount point directory is a real mount
 | |
| @@ -694,7 +690,7 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 | |
|  			 * the kernel NFS client.
 | |
|  			 */
 | |
|  			if (me->multi != me &&
 | |
| -			    is_mounted(mountpoint, MNTS_REAL))
 | |
| +			    is_mounted(me->key, MNTS_REAL))
 | |
|  				return MOUNT_OFFSET_IGNORE;
 | |
|  
 | |
|  			/* 
 | |
| @@ -714,13 +710,13 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 | |
|  			char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
 | |
|  			debug(ap->logopt,
 | |
|  			     "can't create mount directory: %s, %s",
 | |
| -			     mountpoint, estr);
 | |
| +			     me->key, estr);
 | |
|  			return MOUNT_OFFSET_FAIL;
 | |
|  		} else {
 | |
|  			char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
 | |
|  			crit(ap->logopt,
 | |
|  			     "failed to create mount directory: %s, %s",
 | |
| -			     mountpoint, estr);
 | |
| +			     me->key, estr);
 | |
|  			return MOUNT_OFFSET_FAIL;
 | |
|  		}
 | |
|  	} else {
 | |
| @@ -730,56 +726,56 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 | |
|  
 | |
|  	debug(ap->logopt,
 | |
|  	      "calling mount -t autofs " SLOPPY " -o %s automount %s",
 | |
| -	      mp->options, mountpoint);
 | |
| +	      mp->options, me->key);
 | |
|  
 | |
|  	type = ap->entry->maps->type;
 | |
|  	if (!type || strcmp(ap->entry->maps->type, "hosts"))
 | |
|  		map_name = me->mc->map->argv[0];
 | |
|  
 | |
| -	ret = mount(map_name, mountpoint, "autofs", MS_MGC_VAL, mp->options);
 | |
| +	ret = mount(map_name, me->key, "autofs", MS_MGC_VAL, mp->options);
 | |
|  	if (ret) {
 | |
|  		crit(ap->logopt,
 | |
|  		     "failed to mount offset trigger %s at %s",
 | |
| -		     me->key, mountpoint);
 | |
| +		     me->key, me->key);
 | |
|  		goto out_err;
 | |
|  	}
 | |
|  
 | |
| -	ret = stat(mountpoint, &st);
 | |
| +	ret = stat(me->key, &st);
 | |
|  	if (ret == -1) {
 | |
|  		error(ap->logopt,
 | |
| -		     "failed to stat direct mount trigger %s", mountpoint);
 | |
| +		     "failed to stat direct mount trigger %s", me->key);
 | |
|  		goto out_umount;
 | |
|  	}
 | |
|  
 | |
| -	ops->open(ap->logopt, &ioctlfd, st.st_dev, mountpoint);
 | |
| +	ops->open(ap->logopt, &ioctlfd, st.st_dev, me->key);
 | |
|  	if (ioctlfd < 0) {
 | |
| -		crit(ap->logopt, "failed to create ioctl fd for %s", mountpoint);
 | |
| +		crit(ap->logopt, "failed to create ioctl fd for %s", me->key);
 | |
|  		goto out_umount;
 | |
|  	}
 | |
|  
 | |
|  	ops->timeout(ap->logopt, ioctlfd, timeout);
 | |
|  	cache_set_ino_index(me->mc, me->key, st.st_dev, st.st_ino);
 | |
|  	if (ap->logopt & LOGOPT_DEBUG)
 | |
| -		notify_mount_result(ap, mountpoint, timeout, str_offset);
 | |
| +		notify_mount_result(ap, me->key, timeout, str_offset);
 | |
|  	else
 | |
|  		notify_mount_result(ap, me->key, timeout, str_offset);
 | |
|  	ops->close(ap->logopt, ioctlfd);
 | |
|  
 | |
| -	mnt = mnts_add_mount(ap, mountpoint, MNTS_OFFSET);
 | |
| +	mnt = mnts_add_mount(ap, me->key, MNTS_OFFSET);
 | |
|  	if (!mnt)
 | |
|  		error(ap->logopt,
 | |
|  		      "failed to add offset mount %s to mounted list",
 | |
| -		      mountpoint);
 | |
| +		      me->key);
 | |
|  
 | |
| -	debug(ap->logopt, "mounted trigger %s at %s", me->key, mountpoint);
 | |
| +	debug(ap->logopt, "mounted trigger %s", me->key);
 | |
|  
 | |
|  	return MOUNT_OFFSET_OK;
 | |
|  
 | |
|  out_umount:
 | |
| -	umount(mountpoint);
 | |
| +	umount(me->key);
 | |
|  out_err:
 | |
| -	if (stat(mountpoint, &st) == 0 && me->flags & MOUNT_FLAG_DIR_CREATED)
 | |
| -		 rmdir_path(ap, mountpoint, st.st_dev);
 | |
| +	if (stat(me->key, &st) == 0 && me->flags & MOUNT_FLAG_DIR_CREATED)
 | |
| +		 rmdir_path(ap, me->key, st.st_dev);
 | |
|  
 | |
|  	return MOUNT_OFFSET_FAIL;
 | |
|  }
 | |
| diff --git a/include/automount.h b/include/automount.h
 | |
| index 730be19a..09d84f05 100644
 | |
| --- a/include/automount.h
 | |
| +++ b/include/automount.h
 | |
| @@ -596,7 +596,7 @@ int expire_offsets_direct(struct autofs_point *ap, struct mapent *me, int now);
 | |
|  int mount_autofs_indirect(struct autofs_point *ap, const char *root);
 | |
|  int do_mount_autofs_direct(struct autofs_point *ap, struct mapent *me, time_t timeout);
 | |
|  int mount_autofs_direct(struct autofs_point *ap);
 | |
| -int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *root, const char *offset);
 | |
| +int mount_autofs_offset(struct autofs_point *ap, struct mapent *me);
 | |
|  void submount_signal_parent(struct autofs_point *ap, unsigned int success);
 | |
|  void close_mount_fds(struct autofs_point *ap);
 | |
|  int umount_autofs_indirect(struct autofs_point *ap, const char *root);
 | |
| diff --git a/lib/mounts.c b/lib/mounts.c
 | |
| index fe931b20..12d22023 100644
 | |
| --- a/lib/mounts.c
 | |
| +++ b/lib/mounts.c
 | |
| @@ -2481,7 +2481,7 @@ static int do_mount_autofs_offset(struct autofs_point *ap,
 | |
|  
 | |
|  	debug(ap->logopt, "mount offset %s at %s", oe->key, root);
 | |
|  
 | |
| -	ret = mount_autofs_offset(ap, oe, root, offset);
 | |
| +	ret = mount_autofs_offset(ap, oe);
 | |
|  	if (ret >= MOUNT_OFFSET_OK)
 | |
|  		mounted++;
 | |
|  	else {
 |