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

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

 



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.

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


[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