Skip to content

Commit 890d477

Browse files
Matthew Wilcox (Oracle)brauner
authored andcommitted
ecryptfs: Convert ecryptfs_read_lower_page_segment() to take a folio
All callers have a folio, so pass it in and use it directly. This will not work for large folios, but I doubt anybody wants to use large folios with ecryptfs. Signed-off-by: Matthew Wilcox (Oracle) <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Christian Brauner <[email protected]>
1 parent 497eb79 commit 890d477

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

fs/ecryptfs/ecryptfs_kernel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ int ecryptfs_write_lower_page_segment(struct inode *ecryptfs_inode,
658658
int ecryptfs_write(struct inode *inode, char *data, loff_t offset, size_t size);
659659
int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
660660
struct inode *ecryptfs_inode);
661-
int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,
661+
int ecryptfs_read_lower_page_segment(struct folio *folio_for_ecryptfs,
662662
pgoff_t page_index,
663663
size_t offset_in_page, size_t size,
664664
struct inode *ecryptfs_inode);

fs/ecryptfs/mmap.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ ecryptfs_copy_up_encrypted_with_header(struct folio *folio,
150150
- crypt_stat->metadata_size);
151151

152152
rc = ecryptfs_read_lower_page_segment(
153-
&folio->page, (lower_offset >> PAGE_SHIFT),
153+
folio, (lower_offset >> PAGE_SHIFT),
154154
(lower_offset & ~PAGE_MASK),
155155
crypt_stat->extent_size, folio->mapping->host);
156156
if (rc) {
@@ -184,9 +184,8 @@ static int ecryptfs_read_folio(struct file *file, struct folio *folio)
184184
int err = 0;
185185

186186
if (!crypt_stat || !(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) {
187-
err = ecryptfs_read_lower_page_segment(&folio->page, folio->index, 0,
188-
folio_size(folio),
189-
inode);
187+
err = ecryptfs_read_lower_page_segment(folio, folio->index, 0,
188+
folio_size(folio), inode);
190189
} else if (crypt_stat->flags & ECRYPTFS_VIEW_AS_ENCRYPTED) {
191190
if (crypt_stat->flags & ECRYPTFS_METADATA_IN_XATTR) {
192191
err = ecryptfs_copy_up_encrypted_with_header(folio,
@@ -201,7 +200,7 @@ static int ecryptfs_read_folio(struct file *file, struct folio *folio)
201200
}
202201

203202
} else {
204-
err = ecryptfs_read_lower_page_segment(&folio->page,
203+
err = ecryptfs_read_lower_page_segment(folio,
205204
folio->index, 0, folio_size(folio),
206205
inode);
207206
if (err) {
@@ -279,7 +278,7 @@ static int ecryptfs_write_begin(struct file *file,
279278

280279
if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) {
281280
rc = ecryptfs_read_lower_page_segment(
282-
&folio->page, index, 0, PAGE_SIZE, mapping->host);
281+
folio, index, 0, PAGE_SIZE, mapping->host);
283282
if (rc) {
284283
printk(KERN_ERR "%s: Error attempting to read "
285284
"lower page segment; rc = [%d]\n",
@@ -305,7 +304,7 @@ static int ecryptfs_write_begin(struct file *file,
305304
folio_mark_uptodate(folio);
306305
} else {
307306
rc = ecryptfs_read_lower_page_segment(
308-
&folio->page, index, 0, PAGE_SIZE,
307+
folio, index, 0, PAGE_SIZE,
309308
mapping->host);
310309
if (rc) {
311310
printk(KERN_ERR "%s: Error reading "

fs/ecryptfs/read_write.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
228228

229229
/**
230230
* ecryptfs_read_lower_page_segment
231-
* @page_for_ecryptfs: The page into which data for eCryptfs will be
231+
* @folio_for_ecryptfs: The folio into which data for eCryptfs will be
232232
* written
233233
* @page_index: Page index in @page_for_ecryptfs from which to start
234234
* writing
@@ -243,7 +243,7 @@ int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
243243
*
244244
* Returns zero on success; non-zero otherwise
245245
*/
246-
int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,
246+
int ecryptfs_read_lower_page_segment(struct folio *folio_for_ecryptfs,
247247
pgoff_t page_index,
248248
size_t offset_in_page, size_t size,
249249
struct inode *ecryptfs_inode)
@@ -252,12 +252,12 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,
252252
loff_t offset;
253253
int rc;
254254

255-
offset = ((((loff_t)page_index) << PAGE_SHIFT) + offset_in_page);
256-
virt = kmap_local_page(page_for_ecryptfs);
255+
offset = (loff_t)page_index * PAGE_SIZE + offset_in_page;
256+
virt = kmap_local_folio(folio_for_ecryptfs, 0);
257257
rc = ecryptfs_read_lower(virt, offset, size, ecryptfs_inode);
258258
if (rc > 0)
259259
rc = 0;
260260
kunmap_local(virt);
261-
flush_dcache_page(page_for_ecryptfs);
261+
flush_dcache_folio(folio_for_ecryptfs);
262262
return rc;
263263
}

0 commit comments

Comments
 (0)