29 lines
933 B
Diff
29 lines
933 B
Diff
|
Fall back from v4 to v3 on EPERM.
|
||
|
|
||
|
When the mount version isn't specified, mount.nfs tries v4 and
|
||
|
falls back to v3 if it gets ENOENT.
|
||
|
Linux kernels prior to 2.6.25 will return EPERM if there is no
|
||
|
v4 export, so fall back in that case too.
|
||
|
|
||
|
This fixes bnc#557138 where a 2.6.31 or later kernel client gets
|
||
|
an error when mounting from a 2.6.24 or earlier server.
|
||
|
|
||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||
|
|
||
|
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
|
||
|
index b595649..68eb82b 100644
|
||
|
--- a/utils/mount/stropts.c
|
||
|
+++ b/utils/mount/stropts.c
|
||
|
@@ -657,8 +657,10 @@ static int nfs_try_mount(struct nfsmount_info *mi)
|
||
|
* To deal with legacy Linux servers that don't
|
||
|
* automatically export a pseudo root, retry
|
||
|
* ENOENT errors using version 3
|
||
|
+ * And for Linux servers prior to 2.6.25, retry
|
||
|
+ * EPERM
|
||
|
*/
|
||
|
- if (errno != ENOENT)
|
||
|
+ if (errno != ENOENT && errno != EPERM)
|
||
|
break;
|
||
|
}
|
||
|
}
|