Skip to content

Commit

Permalink
afs: Eliminate the address pointer from the address list cursor
Browse files Browse the repository at this point in the history
Eliminate the address pointer from the address list cursor as it's
redundant (ac->addrs[ac->index] can be used to find the same address) and
address lists must be replaced rather than being rearranged, so is of
limited value.

Signed-off-by: David Howells <dhowells@redhat.com>
  • Loading branch information
David Howells committed Oct 23, 2018
1 parent 744bcd7 commit 2feeaf8
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 10 deletions.
2 changes: 0 additions & 2 deletions fs/afs/addr_list.c
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,6 @@ bool afs_iterate_addresses(struct afs_addr_cursor *ac)

ac->begun = true;
ac->responded = false;
ac->addr = &ac->alist->addrs[ac->index];
return true;
}

Expand All @@ -389,7 +388,6 @@ int afs_end_cursor(struct afs_addr_cursor *ac)
afs_put_addrlist(alist);
}

ac->addr = NULL;
ac->alist = NULL;
ac->begun = false;
return ac->error;
Expand Down
1 change: 0 additions & 1 deletion fs/afs/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,6 @@ struct afs_interface {
*/
struct afs_addr_cursor {
struct afs_addr_list *alist; /* Current address list (pins ref) */
struct sockaddr_rxrpc *addr;
u32 abort_code;
unsigned short start; /* Starting point in alist->addrs[] */
unsigned short index; /* Wrapping offset from start to current addr */
Expand Down
2 changes: 1 addition & 1 deletion fs/afs/rxrpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ static int afs_send_pages(struct afs_call *call, struct msghdr *msg)
long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
gfp_t gfp, bool async)
{
struct sockaddr_rxrpc *srx = ac->addr;
struct sockaddr_rxrpc *srx = &ac->alist->addrs[ac->index];
struct rxrpc_call *rxcall;
struct msghdr msg;
struct kvec iov[1];
Expand Down
2 changes: 0 additions & 2 deletions fs/afs/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,6 @@ static void afs_destroy_server(struct afs_net *net, struct afs_server *server)
.alist = alist,
.start = alist->index,
.index = 0,
.addr = &alist->addrs[alist->index],
.error = 0,
};
_enter("%p", server);
Expand Down Expand Up @@ -518,7 +517,6 @@ static bool afs_do_probe_fileserver(struct afs_fs_cursor *fc)

_enter("");

fc->ac.addr = NULL;
fc->ac.start = READ_ONCE(fc->ac.alist->index);
fc->ac.index = fc->ac.start;
fc->ac.error = 0;
Expand Down
2 changes: 1 addition & 1 deletion fs/afs/vl_rotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ bool afs_select_vlserver(struct afs_vl_cursor *vc)
if (!afs_iterate_addresses(&vc->ac))
goto next_server;

_leave(" = t %pISpc", &vc->ac.addr->transport);
_leave(" = t %pISpc", &vc->ac.alist->addrs[vc->ac.index].transport);
return true;

next_server:
Expand Down
6 changes: 3 additions & 3 deletions fs/afs/volume.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,16 @@ static struct afs_vldb_entry *afs_vl_lookup_vldb(struct afs_cell *cell,
case VL_SERVICE:
clear_bit(vc.ac.index, &vc.ac.alist->yfs);
set_bit(vc.ac.index, &vc.ac.alist->probed);
vc.ac.addr->srx_service = ret;
vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
break;
case YFS_VL_SERVICE:
set_bit(vc.ac.index, &vc.ac.alist->yfs);
set_bit(vc.ac.index, &vc.ac.alist->probed);
vc.ac.addr->srx_service = ret;
vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
break;
}
}

vldb = afs_vl_get_entry_by_name_u(&vc, volname, volnamesz);
}

Expand Down

0 comments on commit 2feeaf8

Please sign in to comment.