Skip to content

Commit

Permalink
afs: do not send list of client addresses
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Florian Westphal authored and David S. Miller committed Jun 3, 2019
1 parent b9f8898 commit 35ebfc2
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 87 deletions.
1 change: 0 additions & 1 deletion fs/afs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ kafs-y := \
server.o \
server_list.o \
super.o \
netdevices.o \
vlclient.o \
vl_list.o \
vl_probe.o \
Expand Down
24 changes: 1 addition & 23 deletions fs/afs/cmservice.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */ {
Expand All @@ -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));
Expand All @@ -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));
Expand Down
15 changes: 0 additions & 15 deletions fs/afs/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -724,15 +724,6 @@ struct afs_permits {
struct afs_permit permits[]; /* List of permits sorted by key pointer */
};

/*
* record of one of a system's set of network interfaces
*/
struct afs_interface {
struct in_addr address; /* IPv4 address bound to interface */
struct in_addr netmask; /* netmask applied to address */
unsigned mtu; /* MTU of interface */
};

/*
* Error prioritisation and accumulation.
*/
Expand Down Expand Up @@ -1095,12 +1086,6 @@ extern const struct file_operations afs_mntpt_file_operations;
extern struct vfsmount *afs_d_automount(struct path *);
extern void afs_mntpt_kill_timer(void);

/*
* netdevices.c
*/
extern int afs_get_ipv4_interfaces(struct afs_net *, struct afs_interface *,
size_t, bool);

/*
* proc.c
*/
Expand Down
48 changes: 0 additions & 48 deletions fs/afs/netdevices.c

This file was deleted.

0 comments on commit 35ebfc2

Please sign in to comment.