Re: [PATCH] mount: avoid po_destroy to modify errno what we really want

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 25, 2010, at 5:07 AM, Mi Jinlong wrote:

> We should return the errno that was set before po_destroy,
> rather than the errno that was set at po_destroy.
> 
> Because the po_destroy function don't affect the return value,
> this patch just revert the saved errno after po_destroy.

The only library function used in po_destroy() is free(3).  Does free(3) change the value of errno?

> Signed-off-by: Bian Naimeng <biannm@xxxxxxxxxxxxxx>
> Signed-off-by: Mi Jinlong <mijinlong@xxxxxxxxxxxxxx>
> ---
> utils/mount/stropts.c |    8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 50a1a2a..d554877 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -592,7 +592,7 @@ static int nfs_do_mount_v3v2(struct nfsmount_info *mi,
> 		struct sockaddr *sap, socklen_t salen)
> {
> 	struct mount_options *options = po_dup(mi->options);
> -	int result = 0;
> +	int result = 0, save = 0;
> 
> 	if (!options) {
> 		errno = ENOMEM;
> @@ -637,7 +637,9 @@ static int nfs_do_mount_v3v2(struct nfsmount_info *mi,
> 	result = nfs_sys_mount(mi, options);
> 
> out_fail:
> +	save = errno;
> 	po_destroy(options);
> +	errno = save;
> 	return result;
> }
> 
> @@ -673,7 +675,7 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> 		struct sockaddr *sap, socklen_t salen)
> {
> 	struct mount_options *options = po_dup(mi->options);
> -	int result = 0;
> +	int result = 0, save = 0;
> 
> 	if (!options) {
> 		errno = ENOMEM;
> @@ -724,7 +726,9 @@ static int nfs_do_mount_v4(struct nfsmount_info *mi,
> 	result = nfs_sys_mount(mi, options);
> 
> out_fail:
> +	save = errno;
> 	po_destroy(options);
> +	errno = save;
> 	return result;
> }
> 
> -- 
> 1.7.3.2
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux