]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/mount/stropts.c
Add #include directives for additional header files needed to support IPv6
[nfs-utils.git] / utils / mount / stropts.c
index c8148c42a4ed7b1a6ba42c05aaf1fe0f585b390c..a9c0b504e400ae386289e546e8ca0e3a61b4e18d 100644 (file)
 #include <errno.h>
 #include <netdb.h>
 #include <time.h>
+
 #include <sys/socket.h>
 #include <sys/mount.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
 
 #include "xcommon.h"
 #include "mount.h"
@@ -45,6 +48,7 @@
 #include "error.h"
 #include "network.h"
 #include "parse_opt.h"
+#include "version.h"
 
 #ifdef HAVE_RPCSVC_NFS_PROT_H
 #include <rpcsvc/nfs_prot.h>
@@ -76,6 +80,7 @@
 extern int nfs_mount_data_version;
 extern char *progname;
 extern int verbose;
+extern int sloppy;
 
 struct nfsmount_info {
        const char              *spec,          /* server:/path */
@@ -287,6 +292,16 @@ static int verify_lock_option(struct mount_options *options)
        return 1;
 }
 
+static int nfs_append_sloppy_option(struct mount_options *options)
+{
+       if (!sloppy || linux_version_code() < MAKE_VERSION(2, 6, 27))
+               return 1;
+
+       if (po_append(options, "sloppy") == PO_FAILED)
+               return 0;
+       return 1;
+}
+
 /*
  * Set up mandatory NFS mount options.
  *
@@ -309,6 +324,9 @@ static int nfs_validate_options(struct nfsmount_info *mi)
                        return 0;
        }
 
+       if (!nfs_append_sloppy_option(mi->options))
+               return 0;
+
        if (!append_addr_option(&saddr, mi->options))
                return 0;