Hello,
Could someone comment if it is safe to access the page member variable as
written on line #100 when folio is NULL as returned from the
__filemap_get_folio() function call? Is this kind of intentional page-fault
trigger for the system to handle a new/fresh page allocation?
2 folio = __filemap_get_folio(mapping, index, fgp_flags, gfp);
1 if (!folio || xa_is_value(folio))
100 return &folio->page;
1 return folio_file_page(folio, index);
The code is part of commit ID c5255b421fd04
Thank you,
./drv
On 2/14/23 10:23 AM, Deepak R Varma wrote:
> Hello,
> Could someone comment if it is safe to access the page member variable as
> written on line #100 when folio is NULL as returned from the
It is safe to access the page member variable when folio is NULL because
the offset of page within struct folio is 0.[1]
[1] https://lore.kernel.org/lkml/[email protected]/T/
Thanks,
Sidhartha Kumar
> __filemap_get_folio() function call? Is this kind of intentional page-fault
> trigger for the system to handle a new/fresh page allocation?
>
> 2 folio = __filemap_get_folio(mapping, index, fgp_flags, gfp);
> 1 if (!folio || xa_is_value(folio))
> 100 return &folio->page;
> 1 return folio_file_page(folio, index);
>
> The code is part of commit ID c5255b421fd04
>
> Thank you,
> ./drv
>
>
>
On Tue, Feb 14, 2023 at 10:35:33AM -0800, Sidhartha Kumar wrote:
> On 2/14/23 10:23 AM, Deepak R Varma wrote:
> > Hello,
> > Could someone comment if it is safe to access the page member variable as
> > written on line #100 when folio is NULL as returned from the
>
> It is safe to access the page member variable when folio is NULL because the
> offset of page within struct folio is 0.[1]
Wow. This is so well thought. Thank you Sidhartha.
./drv
>
>
> [1] https://lore.kernel.org/lkml/[email protected]/T/
>
> Thanks,
> Sidhartha Kumar
>
> > __filemap_get_folio() function call? Is this kind of intentional page-fault
> > trigger for the system to handle a new/fresh page allocation?
> >
> > 2 folio = __filemap_get_folio(mapping, index, fgp_flags, gfp);
> > 1 if (!folio || xa_is_value(folio))
> > 100 return &folio->page;
> > 1 return folio_file_page(folio, index);
> >
> > The code is part of commit ID c5255b421fd04
> >
> > Thank you,
> > ./drv
> >
> >
> >
>