diff mbox

[linux-cifs-client] mount.cifs: add support for sending IPv6 scope ID to kernel

Message ID 1244642412-24435-1-git-send-email-jlayton@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jeff Layton June 10, 2009, 2 p.m. UTC
When getaddrinfo returns an IPv6 address with a non-zero scope_id, send
that to the kernel in the new ip6scope mount option. This allows people
to mount servers via their link-local IPv6 addresses (assuming the kernel
supports this option, of course).

Signed-off-by: Jeff Layton <jlayton@redhat.com>
---
 client/mount.cifs.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/client/mount.cifs.c b/client/mount.cifs.c
index 97144a0..840e4ae 100644
--- a/client/mount.cifs.c
+++ b/client/mount.cifs.c
@@ -1562,6 +1562,14 @@  mount_retry:
 		}
 	}
 
+	if (addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) {
+		strlcat(options, ",v6scope=", options_size);
+		current_len = strnlen(options, options_size);
+		optionstail = options + current_len;
+		snprintf(optionstail, options_size - current_len, "%u",
+			 addr6->sin6_scope_id);
+	}
+
 	if (!fakemnt && mount(dev_name, mountpoint, "cifs", flags, options)) {
 		switch (errno) {
 		case ECONNREFUSED: