[PATCH 07/21] shmem: document how to "persist" data when using shmem_*file_setup

Christoph Hellwig
2024-01-26T13:29:33Z

Add a blurb that simply dirtying the folio will persist data for in-kernel
shmem files. This is what most of the callers already do.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
---
mm/shmem.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index e89fb5eccb0c0a..f7d6848fb294d6 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2150,6 +2150,11 @@ static int shmem_get_folio_gfp(struct inode *inode, pgoff_t index,
*
* Return: The found folio, %NULL if SGP_READ or SGP_NOALLOC was passed in @sgp
* and no folio was found at @index, or an ERR_PTR() otherwise.
+ *
+ * If the caller modifies data in the returned folio, it must call
+ * folio_mark_dirty() on the locked folio before dropping the reference to
+ * ensure the folio is not reclaimed. Unlike for normal file systems there is
+ * no need to reserve space for users of shmem_*file_setup().
*/
int shmem_get_folio(struct inode *inode, pgoff_t index, struct folio **foliop,
enum sgp_type sgp)
--
2.39.2