@@ -754,10 +754,11 @@ static int get_volume_page_protected(struct volume *volume, struct uds_request *
754
754
u32 physical_page , struct cached_page * * page_ptr )
755
755
{
756
756
struct cached_page * page ;
757
+ unsigned int zone_number = request -> zone_number ;
757
758
758
759
get_page_from_cache (& volume -> page_cache , physical_page , & page );
759
760
if (page != NULL ) {
760
- if (request -> zone_number == 0 ) {
761
+ if (zone_number == 0 ) {
761
762
/* Only one zone is allowed to update the LRU. */
762
763
make_page_most_recent (& volume -> page_cache , page );
763
764
}
@@ -767,7 +768,7 @@ static int get_volume_page_protected(struct volume *volume, struct uds_request *
767
768
}
768
769
769
770
/* Prepare to enqueue a read for the page. */
770
- end_pending_search (& volume -> page_cache , request -> zone_number );
771
+ end_pending_search (& volume -> page_cache , zone_number );
771
772
mutex_lock (& volume -> read_threads_mutex );
772
773
773
774
/*
@@ -787,8 +788,7 @@ static int get_volume_page_protected(struct volume *volume, struct uds_request *
787
788
* the order does not matter for correctness as it does below.
788
789
*/
789
790
mutex_unlock (& volume -> read_threads_mutex );
790
- begin_pending_search (& volume -> page_cache , physical_page ,
791
- request -> zone_number );
791
+ begin_pending_search (& volume -> page_cache , physical_page , zone_number );
792
792
return UDS_QUEUED ;
793
793
}
794
794
@@ -797,7 +797,7 @@ static int get_volume_page_protected(struct volume *volume, struct uds_request *
797
797
* "search pending" state in careful order so no other thread can mess with the data before
798
798
* the caller gets to look at it.
799
799
*/
800
- begin_pending_search (& volume -> page_cache , physical_page , request -> zone_number );
800
+ begin_pending_search (& volume -> page_cache , physical_page , zone_number );
801
801
mutex_unlock (& volume -> read_threads_mutex );
802
802
* page_ptr = page ;
803
803
return UDS_SUCCESS ;
@@ -849,6 +849,7 @@ static int search_cached_index_page(struct volume *volume, struct uds_request *r
849
849
{
850
850
int result ;
851
851
struct cached_page * page = NULL ;
852
+ unsigned int zone_number = request -> zone_number ;
852
853
u32 physical_page = map_to_physical_page (volume -> geometry , chapter ,
853
854
index_page_number );
854
855
@@ -858,18 +859,18 @@ static int search_cached_index_page(struct volume *volume, struct uds_request *r
858
859
* invalidation by the reader thread, before the reader thread has noticed that the
859
860
* invalidate_counter has been incremented.
860
861
*/
861
- begin_pending_search (& volume -> page_cache , physical_page , request -> zone_number );
862
+ begin_pending_search (& volume -> page_cache , physical_page , zone_number );
862
863
863
864
result = get_volume_page_protected (volume , request , physical_page , & page );
864
865
if (result != UDS_SUCCESS ) {
865
- end_pending_search (& volume -> page_cache , request -> zone_number );
866
+ end_pending_search (& volume -> page_cache , zone_number );
866
867
return result ;
867
868
}
868
869
869
870
result = uds_search_chapter_index_page (& page -> index_page , volume -> geometry ,
870
871
& request -> record_name ,
871
872
record_page_number );
872
- end_pending_search (& volume -> page_cache , request -> zone_number );
873
+ end_pending_search (& volume -> page_cache , zone_number );
873
874
return result ;
874
875
}
875
876
@@ -882,6 +883,7 @@ int uds_search_cached_record_page(struct volume *volume, struct uds_request *req
882
883
{
883
884
struct cached_page * record_page ;
884
885
struct index_geometry * geometry = volume -> geometry ;
886
+ unsigned int zone_number = request -> zone_number ;
885
887
int result ;
886
888
u32 physical_page , page_number ;
887
889
@@ -905,19 +907,19 @@ int uds_search_cached_record_page(struct volume *volume, struct uds_request *req
905
907
* invalidation by the reader thread, before the reader thread has noticed that the
906
908
* invalidate_counter has been incremented.
907
909
*/
908
- begin_pending_search (& volume -> page_cache , physical_page , request -> zone_number );
910
+ begin_pending_search (& volume -> page_cache , physical_page , zone_number );
909
911
910
912
result = get_volume_page_protected (volume , request , physical_page , & record_page );
911
913
if (result != UDS_SUCCESS ) {
912
- end_pending_search (& volume -> page_cache , request -> zone_number );
914
+ end_pending_search (& volume -> page_cache , zone_number );
913
915
return result ;
914
916
}
915
917
916
918
if (search_record_page (dm_bufio_get_block_data (record_page -> buffer ),
917
919
& request -> record_name , geometry , & request -> old_metadata ))
918
920
* found = true;
919
921
920
- end_pending_search (& volume -> page_cache , request -> zone_number );
922
+ end_pending_search (& volume -> page_cache , zone_number );
921
923
return UDS_SUCCESS ;
922
924
}
923
925
0 commit comments