Restored the nfs-utils-2.5.4-mount-sloppy.patch
Signed-off-by: Steve Dickson <steved@redhat.com> Resolves: bz1987070
This commit is contained in:
parent
424763a9c2
commit
e73730e5e7
@ -1,44 +1,69 @@
|
|||||||
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c
|
commit 4dd8d833c9350d42528ada0fd65aee41b712f41d
|
||||||
--- nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig 2021-06-10 14:07:47.000000000 -0400
|
Author: Steve Dickson <steved@redhat.com>
|
||||||
+++ nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c 2021-08-18 13:44:11.839124879 -0400
|
Date: Tue Jul 20 17:14:04 2021 -0400
|
||||||
@@ -507,7 +507,7 @@ cltrack_gracedone(const char *timestr)
|
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
int ret;
|
- if (!sloppy || linux_version_code() < MAKE_VERSION(2, 6, 27))
|
||||||
char *tail;
|
+ if (linux_version_code() < MAKE_VERSION(2, 6, 27))
|
||||||
- time_t gracetime;
|
return 1;
|
||||||
+ uint64_t gracetime;
|
|
||||||
|
|
||||||
|
- 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;
|
||||||
|
}
|
||||||
|
|
||||||
ret = sqlite_prepare_dbh(storagedir);
|
|
||||||
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c
|
|
||||||
--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig 2021-06-10 14:07:47.000000000 -0400
|
|
||||||
+++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c 2021-08-18 13:48:16.264408309 -0400
|
|
||||||
@@ -48,6 +48,7 @@
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sqlite3.h>
|
|
||||||
+#include <stdint.h>
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
#include "xlog.h"
|
|
||||||
@@ -539,7 +540,7 @@ out_err:
|
|
||||||
* remove any client records that were not reclaimed since grace_start.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
-sqlite_remove_unreclaimed(time_t grace_start)
|
|
||||||
+sqlite_remove_unreclaimed(uint64_t grace_start)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
char *err = NULL;
|
|
||||||
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h
|
|
||||||
--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig 2021-06-10 14:07:47.000000000 -0400
|
|
||||||
+++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h 2021-08-18 13:44:11.839124879 -0400
|
|
||||||
@@ -26,7 +26,7 @@ int sqlite_insert_client(const unsigned
|
|
||||||
int sqlite_remove_client(const unsigned char *clname, const size_t namelen);
|
|
||||||
int sqlite_check_client(const unsigned char *clname, const size_t namelen,
|
|
||||||
const bool has_session);
|
|
||||||
-int sqlite_remove_unreclaimed(const time_t grace_start);
|
|
||||||
+int sqlite_remove_unreclaimed(const uint64_t grace_start);
|
|
||||||
int sqlite_query_reclaiming(const time_t grace_start);
|
|
||||||
|
|
||||||
#endif /* _SQLITE_H */
|
|
||||||
|
@ -1,3 +1,47 @@
|
|||||||
|
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c
|
||||||
|
--- nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c.orig 2021-06-10 14:07:47.000000000 -0400
|
||||||
|
+++ nfs-utils-2.5.4/utils/nfsdcltrack/nfsdcltrack.c 2021-08-18 13:44:11.839124879 -0400
|
||||||
|
@@ -507,7 +507,7 @@ cltrack_gracedone(const char *timestr)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *tail;
|
||||||
|
- time_t gracetime;
|
||||||
|
+ uint64_t gracetime;
|
||||||
|
|
||||||
|
|
||||||
|
ret = sqlite_prepare_dbh(storagedir);
|
||||||
|
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c
|
||||||
|
--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c.orig 2021-06-10 14:07:47.000000000 -0400
|
||||||
|
+++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.c 2021-08-18 13:48:16.264408309 -0400
|
||||||
|
@@ -48,6 +48,7 @@
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sqlite3.h>
|
||||||
|
+#include <stdint.h>
|
||||||
|
#include <linux/limits.h>
|
||||||
|
|
||||||
|
#include "xlog.h"
|
||||||
|
@@ -539,7 +540,7 @@ out_err:
|
||||||
|
* remove any client records that were not reclaimed since grace_start.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
-sqlite_remove_unreclaimed(time_t grace_start)
|
||||||
|
+sqlite_remove_unreclaimed(uint64_t grace_start)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *err = NULL;
|
||||||
|
diff -up nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h
|
||||||
|
--- nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h.orig 2021-06-10 14:07:47.000000000 -0400
|
||||||
|
+++ nfs-utils-2.5.4/utils/nfsdcltrack/sqlite.h 2021-08-18 13:44:11.839124879 -0400
|
||||||
|
@@ -26,7 +26,7 @@ int sqlite_insert_client(const unsigned
|
||||||
|
int sqlite_remove_client(const unsigned char *clname, const size_t namelen);
|
||||||
|
int sqlite_check_client(const unsigned char *clname, const size_t namelen,
|
||||||
|
const bool has_session);
|
||||||
|
-int sqlite_remove_unreclaimed(const time_t grace_start);
|
||||||
|
+int sqlite_remove_unreclaimed(const uint64_t grace_start);
|
||||||
|
int sqlite_query_reclaiming(const time_t grace_start);
|
||||||
|
|
||||||
|
#endif /* _SQLITE_H */
|
||||||
diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c
|
diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c
|
||||||
index 2f8bea81..7c1c4bcc 100644
|
index 2f8bea81..7c1c4bcc 100644
|
||||||
--- a/utils/nfsdcltrack/nfsdcltrack.c
|
--- a/utils/nfsdcltrack/nfsdcltrack.c
|
||||||
|
Loading…
Reference in New Issue
Block a user