aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2018-10-19 19:57:59 -0400
committerDavid Howells <dhowells@redhat.com>2018-10-23 19:41:09 -0400
commit2feeaf8433c8e68de3d0a06a0ffe7742bcd13c1a (patch)
tree3df3266b2ae356ad67edf8fa5bf3491e2c865472
parent744bcd713a4eabb248246f7deccfad30c579b7f5 (diff)
afs: Eliminate the address pointer from the address list cursor
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>
-rw-r--r--fs/afs/addr_list.c2
-rw-r--r--fs/afs/internal.h1
-rw-r--r--fs/afs/rxrpc.c2
-rw-r--r--fs/afs/server.c2
-rw-r--r--fs/afs/vl_rotate.c2
-rw-r--r--fs/afs/volume.c6
6 files changed, 5 insertions, 10 deletions
diff --git a/fs/afs/addr_list.c b/fs/afs/addr_list.c
index bc5ce31a4ae4..1536d1d21c33 100644
--- a/fs/afs/addr_list.c
+++ b/fs/afs/addr_list.c
@@ -371,7 +371,6 @@ bool afs_iterate_addresses(struct afs_addr_cursor *ac)
371 371
372 ac->begun = true; 372 ac->begun = true;
373 ac->responded = false; 373 ac->responded = false;
374 ac->addr = &ac->alist->addrs[ac->index];
375 return true; 374 return true;
376} 375}
377 376
@@ -389,7 +388,6 @@ int afs_end_cursor(struct afs_addr_cursor *ac)
389 afs_put_addrlist(alist); 388 afs_put_addrlist(alist);
390 } 389 }
391 390
392 ac->addr = NULL;
393 ac->alist = NULL; 391 ac->alist = NULL;
394 ac->begun = false; 392 ac->begun = false;
395 return ac->error; 393 return ac->error;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index ac9da1e4050e..e5b596bd8acf 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -653,7 +653,6 @@ struct afs_interface {
653 */ 653 */
654struct afs_addr_cursor { 654struct afs_addr_cursor {
655 struct afs_addr_list *alist; /* Current address list (pins ref) */ 655 struct afs_addr_list *alist; /* Current address list (pins ref) */
656 struct sockaddr_rxrpc *addr;
657 u32 abort_code; 656 u32 abort_code;
658 unsigned short start; /* Starting point in alist->addrs[] */ 657 unsigned short start; /* Starting point in alist->addrs[] */
659 unsigned short index; /* Wrapping offset from start to current addr */ 658 unsigned short index; /* Wrapping offset from start to current addr */
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 444ba0d511ef..42e1ea7372e9 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -359,7 +359,7 @@ static int afs_send_pages(struct afs_call *call, struct msghdr *msg)
359long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call, 359long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
360 gfp_t gfp, bool async) 360 gfp_t gfp, bool async)
361{ 361{
362 struct sockaddr_rxrpc *srx = ac->addr; 362 struct sockaddr_rxrpc *srx = &ac->alist->addrs[ac->index];
363 struct rxrpc_call *rxcall; 363 struct rxrpc_call *rxcall;
364 struct msghdr msg; 364 struct msghdr msg;
365 struct kvec iov[1]; 365 struct kvec iov[1];
diff --git a/fs/afs/server.c b/fs/afs/server.c
index aa35cfae5440..7c1be8b4dc9a 100644
--- a/fs/afs/server.c
+++ b/fs/afs/server.c
@@ -367,7 +367,6 @@ static void afs_destroy_server(struct afs_net *net, struct afs_server *server)
367 .alist = alist, 367 .alist = alist,
368 .start = alist->index, 368 .start = alist->index,
369 .index = 0, 369 .index = 0,
370 .addr = &alist->addrs[alist->index],
371 .error = 0, 370 .error = 0,
372 }; 371 };
373 _enter("%p", server); 372 _enter("%p", server);
@@ -518,7 +517,6 @@ static bool afs_do_probe_fileserver(struct afs_fs_cursor *fc)
518 517
519 _enter(""); 518 _enter("");
520 519
521 fc->ac.addr = NULL;
522 fc->ac.start = READ_ONCE(fc->ac.alist->index); 520 fc->ac.start = READ_ONCE(fc->ac.alist->index);
523 fc->ac.index = fc->ac.start; 521 fc->ac.index = fc->ac.start;
524 fc->ac.error = 0; 522 fc->ac.error = 0;
diff --git a/fs/afs/vl_rotate.c b/fs/afs/vl_rotate.c
index 5b99ea7be194..ead6dedbb561 100644
--- a/fs/afs/vl_rotate.c
+++ b/fs/afs/vl_rotate.c
@@ -209,7 +209,7 @@ iterate_address:
209 if (!afs_iterate_addresses(&vc->ac)) 209 if (!afs_iterate_addresses(&vc->ac))
210 goto next_server; 210 goto next_server;
211 211
212 _leave(" = t %pISpc", &vc->ac.addr->transport); 212 _leave(" = t %pISpc", &vc->ac.alist->addrs[vc->ac.index].transport);
213 return true; 213 return true;
214 214
215next_server: 215next_server:
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index f0020e35bf6f..7527c081726e 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -88,16 +88,16 @@ static struct afs_vldb_entry *afs_vl_lookup_vldb(struct afs_cell *cell,
88 case VL_SERVICE: 88 case VL_SERVICE:
89 clear_bit(vc.ac.index, &vc.ac.alist->yfs); 89 clear_bit(vc.ac.index, &vc.ac.alist->yfs);
90 set_bit(vc.ac.index, &vc.ac.alist->probed); 90 set_bit(vc.ac.index, &vc.ac.alist->probed);
91 vc.ac.addr->srx_service = ret; 91 vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
92 break; 92 break;
93 case YFS_VL_SERVICE: 93 case YFS_VL_SERVICE:
94 set_bit(vc.ac.index, &vc.ac.alist->yfs); 94 set_bit(vc.ac.index, &vc.ac.alist->yfs);
95 set_bit(vc.ac.index, &vc.ac.alist->probed); 95 set_bit(vc.ac.index, &vc.ac.alist->probed);
96 vc.ac.addr->srx_service = ret; 96 vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
97 break; 97 break;
98 } 98 }
99 } 99 }
100 100
101 vldb = afs_vl_get_entry_by_name_u(&vc, volname, volnamesz); 101 vldb = afs_vl_get_entry_by_name_u(&vc, volname, volnamesz);
102 } 102 }
103 103