]> err.no Git - linux-2.6/blobdiff - fs/cifs/dns_resolve.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / fs / cifs / dns_resolve.c
index 939e256f84975995341da88b38e2c60201e2aaa5..a2e0673e1b0873983bee36db6f25d948978e3b06 100644 (file)
@@ -47,11 +47,18 @@ static int dns_resolver_instantiate(struct key *key, const void *data,
        return rc;
 }
 
+static void
+dns_resolver_destroy(struct key *key)
+{
+       kfree(key->payload.data);
+}
+
 struct key_type key_type_dns_resolver = {
        .name        = "dns_resolver",
        .def_datalen = sizeof(struct in_addr),
        .describe    = user_describe,
        .instantiate = dns_resolver_instantiate,
+       .destroy     = dns_resolver_destroy,
        .match       = user_match,
 };
 
@@ -134,10 +141,6 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr)
        rkey = request_key(&key_type_dns_resolver, name, "");
        if (!IS_ERR(rkey)) {
                data = rkey->payload.data;
-               cFYI(1, ("%s: resolved: %s to %s", __func__,
-                                       rkey->description,
-                                       *ip_addr
-                               ));
        } else {
                cERROR(1, ("%s: unable to resolve: %s", __func__, name));
                goto out;
@@ -150,6 +153,11 @@ skip_upcall:
                if (*ip_addr) {
                        memcpy(*ip_addr, data, len);
                        (*ip_addr)[len] = '\0';
+                       if (!IS_ERR(rkey))
+                               cFYI(1, ("%s: resolved: %s to %s", __func__,
+                                                       name,
+                                                       *ip_addr
+                                       ));
                        rc = 0;
                } else {
                        rc = -ENOMEM;