@@ -497,7 +497,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
497
497
unsigned chunk_size = ext2_chunk_size (dir );
498
498
unsigned reclen = EXT2_DIR_REC_LEN (namelen );
499
499
unsigned short rec_len , name_len ;
500
- struct page * page = NULL ;
500
+ struct folio * folio = NULL ;
501
501
ext2_dirent * de ;
502
502
unsigned long npages = dir_pages (dir );
503
503
unsigned long n ;
@@ -506,19 +506,19 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
506
506
507
507
/*
508
508
* We take care of directory expansion in the same loop.
509
- * This code plays outside i_size, so it locks the page
509
+ * This code plays outside i_size, so it locks the folio
510
510
* to protect that region.
511
511
*/
512
512
for (n = 0 ; n <= npages ; n ++ ) {
513
- char * kaddr = ext2_get_page (dir , n , 0 , & page );
513
+ char * kaddr = ext2_get_folio (dir , n , 0 , & folio );
514
514
char * dir_end ;
515
515
516
516
if (IS_ERR (kaddr ))
517
517
return PTR_ERR (kaddr );
518
- lock_page ( page );
518
+ folio_lock ( folio );
519
519
dir_end = kaddr + ext2_last_byte (dir , n );
520
520
de = (ext2_dirent * )kaddr ;
521
- kaddr += PAGE_SIZE - reclen ;
521
+ kaddr += folio_size ( folio ) - reclen ;
522
522
while ((char * )de <= kaddr ) {
523
523
if ((char * )de == dir_end ) {
524
524
/* We hit i_size */
@@ -545,15 +545,15 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
545
545
goto got_it ;
546
546
de = (ext2_dirent * ) ((char * ) de + rec_len );
547
547
}
548
- unlock_page ( page );
549
- ext2_put_page ( page , kaddr );
548
+ folio_unlock ( folio );
549
+ folio_release_kmap ( folio , kaddr );
550
550
}
551
551
BUG ();
552
552
return - EINVAL ;
553
553
554
554
got_it :
555
- pos = page_offset ( page ) + offset_in_page ( de );
556
- err = ext2_prepare_chunk (page , pos , rec_len );
555
+ pos = folio_pos ( folio ) + offset_in_folio ( folio , de );
556
+ err = ext2_prepare_chunk (& folio -> page , pos , rec_len );
557
557
if (err )
558
558
goto out_unlock ;
559
559
if (de -> inode ) {
@@ -566,17 +566,17 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
566
566
memcpy (de -> name , name , namelen );
567
567
de -> inode = cpu_to_le32 (inode -> i_ino );
568
568
ext2_set_de_type (de , inode );
569
- ext2_commit_chunk (page , pos , rec_len );
569
+ ext2_commit_chunk (& folio -> page , pos , rec_len );
570
570
dir -> i_mtime = inode_set_ctime_current (dir );
571
571
EXT2_I (dir )-> i_flags &= ~EXT2_BTREE_FL ;
572
572
mark_inode_dirty (dir );
573
573
err = ext2_handle_dirsync (dir );
574
574
/* OFFSET_CACHE */
575
575
out_put :
576
- ext2_put_page ( page , de );
576
+ folio_release_kmap ( folio , de );
577
577
return err ;
578
578
out_unlock :
579
- unlock_page ( page );
579
+ folio_unlock ( folio );
580
580
goto out_put ;
581
581
}
582
582
0 commit comments