@@ -41,30 +41,29 @@ int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data,
4141/**
4242 * ecryptfs_write_lower_page_segment
4343 * @ecryptfs_inode: The eCryptfs inode
44- * @page_for_lower : The page containing the data to be written to the
44+ * @folio_for_lower : The folio containing the data to be written to the
4545 * lower file
46- * @offset_in_page: The offset in the @page_for_lower from which to
46+ * @offset_in_page: The offset in the @folio_for_lower from which to
4747 * start writing the data
48- * @size: The amount of data from @page_for_lower to write to the
48+ * @size: The amount of data from @folio_for_lower to write to the
4949 * lower file
5050 *
5151 * Determines the byte offset in the file for the given page and
5252 * offset within the page, maps the page, and makes the call to write
53- * the contents of @page_for_lower to the lower inode.
53+ * the contents of @folio_for_lower to the lower inode.
5454 *
5555 * Returns zero on success; non-zero otherwise
5656 */
5757int ecryptfs_write_lower_page_segment (struct inode * ecryptfs_inode ,
58- struct page * page_for_lower ,
58+ struct folio * folio_for_lower ,
5959 size_t offset_in_page , size_t size )
6060{
6161 char * virt ;
6262 loff_t offset ;
6363 int rc ;
6464
65- offset = ((((loff_t )page_for_lower -> index ) << PAGE_SHIFT )
66- + offset_in_page );
67- virt = kmap_local_page (page_for_lower );
65+ offset = (loff_t )folio_for_lower -> index * PAGE_SIZE + offset_in_page ;
66+ virt = kmap_local_folio (folio_for_lower , 0 );
6867 rc = ecryptfs_write_lower (ecryptfs_inode , virt , offset , size );
6968 if (rc > 0 )
7069 rc = 0 ;
@@ -172,7 +171,7 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
172171 rc = ecryptfs_encrypt_page (& ecryptfs_folio -> page );
173172 else
174173 rc = ecryptfs_write_lower_page_segment (ecryptfs_inode ,
175- & ecryptfs_folio -> page ,
174+ ecryptfs_folio ,
176175 start_offset_in_page ,
177176 data_offset );
178177 folio_put (ecryptfs_folio );
0 commit comments