You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.1 KiB
69 lines
2.1 KiB
commit 4dd8d833c9350d42528ada0fd65aee41b712f41d |
|
Author: Steve Dickson <steved@redhat.com> |
|
Date: Tue Jul 20 17:14:04 2021 -0400 |
|
|
|
mount.nfs: Fix the sloppy option processing |
|
|
|
The new mount API broke how the sloppy option is parsed. |
|
So the option processing needs to be moved up in |
|
the mount.nfs command. |
|
|
|
The option needs to be the first option in the string |
|
that is passed into the kernel with the -s mount(8) |
|
and/or the -o sloppy is used. |
|
|
|
Commit 92b664ef fixed the process of the -s flag |
|
and this version fixes the -o sloppy processing |
|
as well works when libmount-mount is and is not |
|
enabled plus cleans up the mount options passed |
|
to the kernel. |
|
|
|
Reviewed-and-tested-by: Dave Wysochanski <dwysocha@redhat.com> |
|
Signed-off-by: Steve Dickson <steved@redhat.com> |
|
|
|
diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man |
|
index f98cb47d..f1b76936 100644 |
|
--- a/utils/mount/nfs.man |
|
+++ b/utils/mount/nfs.man |
|
@@ -555,6 +555,13 @@ using the FS-Cache facility. See cachefilesd(8) |
|
and <kernel_source>/Documentation/filesystems/caching |
|
for detail on how to configure the FS-Cache facility. |
|
Default value is nofsc. |
|
+.TP 1.5i |
|
+.B sloppy |
|
+The |
|
+.B sloppy |
|
+option is an alternative to specifying |
|
+.BR mount.nfs " -s " option. |
|
+ |
|
.SS "Options for NFS versions 2 and 3 only" |
|
Use these options, along with the options in the above subsection, |
|
for NFS versions 2 and 3 only. |
|
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c |
|
index 82b054a5..fa67a66f 100644 |
|
--- a/utils/mount/stropts.c |
|
+++ b/utils/mount/stropts.c |
|
@@ -339,11 +339,19 @@ static int nfs_verify_lock_option(struct mount_options *options) |
|
|
|
static int nfs_insert_sloppy_option(struct mount_options *options) |
|
{ |
|
- if (!sloppy || linux_version_code() < MAKE_VERSION(2, 6, 27)) |
|
+ if (linux_version_code() < MAKE_VERSION(2, 6, 27)) |
|
return 1; |
|
|
|
- if (po_insert(options, "sloppy") == PO_FAILED) |
|
- return 0; |
|
+ if (po_contains(options, "sloppy")) { |
|
+ po_remove_all(options, "sloppy"); |
|
+ sloppy++; |
|
+ } |
|
+ |
|
+ if (sloppy) { |
|
+ if (po_insert(options, "sloppy") == PO_FAILED) |
|
+ return 0; |
|
+ } |
|
+ |
|
return 1; |
|
} |
|
|
|
|
|
|