afs: do not send list of client addresses
David Howells says: I'm told that there's not really any point populating the list. Current OpenAFS ignores it, as does AuriStor - and IBM AFS 3.6 will do the right thing. The list is actually useless as it's the client's view of the world, not the servers, so if there's any NAT in the way its contents are invalid. Further, it doesn't support IPv6 addresses. On that basis, feel free to make it an empty list and remove all the interface enumeration. V1 of this patch reworked the function to use a new helper for the ifa_list iteration to avoid sparse warnings once the proper __rcu annotations get added in struct in_device later. But, in light of the above, just remove afs_get_ipv4_interfaces. Compile tested only. Cc: David Howells <dhowells@redhat.com> Cc: linux-afs@lists.infradead.org Signed-off-by: Florian Westphal <fw@strlen.de> Tested-by: David Howells <dhowells@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
b9f8898275
commit
35ebfc22fe
@@ -584,9 +584,8 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
|
||||
*/
|
||||
static void SRXAFSCB_TellMeAboutYourself(struct work_struct *work)
|
||||
{
|
||||
struct afs_interface *ifs;
|
||||
struct afs_call *call = container_of(work, struct afs_call, work);
|
||||
int loop, nifs;
|
||||
int loop;
|
||||
|
||||
struct {
|
||||
struct /* InterfaceAddr */ {
|
||||
@@ -604,19 +603,7 @@ static void SRXAFSCB_TellMeAboutYourself(struct work_struct *work)
|
||||
|
||||
_enter("");
|
||||
|
||||
nifs = 0;
|
||||
ifs = kcalloc(32, sizeof(*ifs), GFP_KERNEL);
|
||||
if (ifs) {
|
||||
nifs = afs_get_ipv4_interfaces(call->net, ifs, 32, false);
|
||||
if (nifs < 0) {
|
||||
kfree(ifs);
|
||||
ifs = NULL;
|
||||
nifs = 0;
|
||||
}
|
||||
}
|
||||
|
||||
memset(&reply, 0, sizeof(reply));
|
||||
reply.ia.nifs = htonl(nifs);
|
||||
|
||||
reply.ia.uuid[0] = call->net->uuid.time_low;
|
||||
reply.ia.uuid[1] = htonl(ntohs(call->net->uuid.time_mid));
|
||||
@@ -626,15 +613,6 @@ static void SRXAFSCB_TellMeAboutYourself(struct work_struct *work)
|
||||
for (loop = 0; loop < 6; loop++)
|
||||
reply.ia.uuid[loop + 5] = htonl((s8) call->net->uuid.node[loop]);
|
||||
|
||||
if (ifs) {
|
||||
for (loop = 0; loop < nifs; loop++) {
|
||||
reply.ia.ifaddr[loop] = ifs[loop].address.s_addr;
|
||||
reply.ia.netmask[loop] = ifs[loop].netmask.s_addr;
|
||||
reply.ia.mtu[loop] = htonl(ifs[loop].mtu);
|
||||
}
|
||||
kfree(ifs);
|
||||
}
|
||||
|
||||
reply.cap.capcount = htonl(1);
|
||||
reply.cap.caps[0] = htonl(AFS_CAP_ERROR_TRANSLATION);
|
||||
afs_send_simple_reply(call, &reply, sizeof(reply));
|
||||
|
Reference in New Issue
Block a user