diff options
| author | Tony Lindgren <tony@atomide.com> | 2011-03-10 18:54:14 -0800 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2011-03-10 18:54:14 -0800 | 
| commit | 94a06b74e724caabcf0464c81527cfbcae0c8aff (patch) | |
| tree | 3570b6a627382a5eb5c8328b4959f615544d8e62 /net/dns_resolver/dns_key.c | |
| parent | 0dde52a9f5330eec240660191a94b51bd911ffcd (diff) | |
| parent | 9062511097683b4422f023d181b4a8b2db1a7a72 (diff) | |
| download | olio-linux-3.10-94a06b74e724caabcf0464c81527cfbcae0c8aff.tar.xz olio-linux-3.10-94a06b74e724caabcf0464c81527cfbcae0c8aff.zip  | |
Merge branch 'for_2.6.39/pm-misc' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into omap-for-linus
Diffstat (limited to 'net/dns_resolver/dns_key.c')
| -rw-r--r-- | net/dns_resolver/dns_key.c | 20 | 
1 files changed, 17 insertions, 3 deletions
diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c index 739435a6af3..cfa7a5e1c5c 100644 --- a/net/dns_resolver/dns_key.c +++ b/net/dns_resolver/dns_key.c @@ -67,8 +67,9 @@ dns_resolver_instantiate(struct key *key, const void *_data, size_t datalen)  	size_t result_len = 0;  	const char *data = _data, *end, *opt; -	kenter("%%%d,%s,'%s',%zu", -	       key->serial, key->description, data, datalen); +	kenter("%%%d,%s,'%*.*s',%zu", +	       key->serial, key->description, +	       (int)datalen, (int)datalen, data, datalen);  	if (datalen <= 1 || !data || data[datalen - 1] != '\0')  		return -EINVAL; @@ -217,6 +218,19 @@ static void dns_resolver_describe(const struct key *key, struct seq_file *m)  		seq_printf(m, ": %u", key->datalen);  } +/* + * read the DNS data + * - the key's semaphore is read-locked + */ +static long dns_resolver_read(const struct key *key, +			      char __user *buffer, size_t buflen) +{ +	if (key->type_data.x[0]) +		return key->type_data.x[0]; + +	return user_read(key, buffer, buflen); +} +  struct key_type key_type_dns_resolver = {  	.name		= "dns_resolver",  	.instantiate	= dns_resolver_instantiate, @@ -224,7 +238,7 @@ struct key_type key_type_dns_resolver = {  	.revoke		= user_revoke,  	.destroy	= user_destroy,  	.describe	= dns_resolver_describe, -	.read		= user_read, +	.read		= dns_resolver_read,  };  static int __init init_dns_resolver(void)  |