On 9/20/23 13:56, Pankaj Raghav wrote:
On Mon, Sep 18, 2023 at 01:04:53PM +0200, Hannes Reinecke wrote:
if (folio && !xa_is_value(folio)) {
@@ -239,8 +239,8 @@ void page_cache_ra_unbounded(struct readahead_control *ractl,
* not worth getting one just for that.
*/
read_pages(ractl);
- ractl->_index++;
- i = ractl->_index + ractl->_nr_pages - index - 1;
+ ractl->_index += folio_nr_pages(folio);
+ i = ractl->_index + ractl->_nr_pages - index;
I am not entirely sure if this is correct.
The above if condition only verifies if a folio is in the page cache but
doesn't tell if it is uptodate. But we are advancing the ractl->index
past this folio irrespective of that.
Am I missing something?
Confused. Which condition?
I'm not changing the condition at all, just changing the way how the 'i'
index is calculated during the loop (ie getting rid of the weird
decrement and increment on 'i' during the loop).
Please clarify.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman