@@ -299,7 +299,7 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
299299 if (de -> rec_len == 0 ) {
300300 ext2_error (sb , __func__ ,
301301 "zero-length directory entry" );
302- ext2_put_page (page , kaddr );
302+ ext2_put_page (page , de );
303303 return - EIO ;
304304 }
305305 if (de -> inode ) {
@@ -311,7 +311,7 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
311311 if (!dir_emit (ctx , de -> name , de -> name_len ,
312312 le32_to_cpu (de -> inode ),
313313 d_type )) {
314- ext2_put_page (page , kaddr );
314+ ext2_put_page (page , de );
315315 return 0 ;
316316 }
317317 }
@@ -377,14 +377,14 @@ struct ext2_dir_entry_2 *ext2_find_entry (struct inode *dir,
377377 if (de -> rec_len == 0 ) {
378378 ext2_error (dir -> i_sb , __func__ ,
379379 "zero-length directory entry" );
380- ext2_put_page (page , page_addr );
380+ ext2_put_page (page , de );
381381 goto out ;
382382 }
383383 if (ext2_match (namelen , name , de ))
384384 goto found ;
385385 de = ext2_next_entry (de );
386386 }
387- ext2_put_page (page , page_addr );
387+ ext2_put_page (page , kaddr );
388388
389389 if (++ n >= npages )
390390 n = 0 ;
@@ -443,7 +443,7 @@ int ext2_inode_by_name(struct inode *dir, const struct qstr *child, ino_t *ino)
443443 return PTR_ERR (de );
444444
445445 * ino = le32_to_cpu (de -> inode );
446- ext2_put_page (page , page_addr );
446+ ext2_put_page (page , de );
447447 return 0 ;
448448}
449449
@@ -499,7 +499,6 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
499499 unsigned reclen = EXT2_DIR_REC_LEN (namelen );
500500 unsigned short rec_len , name_len ;
501501 struct page * page = NULL ;
502- void * page_addr = NULL ;
503502 ext2_dirent * de ;
504503 unsigned long npages = dir_pages (dir );
505504 unsigned long n ;
@@ -515,11 +514,10 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
515514 char * kaddr ;
516515 char * dir_end ;
517516
518- page_addr = ext2_get_page (dir , n , 0 , & page );
519- if (IS_ERR (page_addr ))
520- return PTR_ERR (page_addr );
517+ kaddr = ext2_get_page (dir , n , 0 , & page );
518+ if (IS_ERR (kaddr ))
519+ return PTR_ERR (kaddr );
521520 lock_page (page );
522- kaddr = page_addr ;
523521 dir_end = kaddr + ext2_last_byte (dir , n );
524522 de = (ext2_dirent * )kaddr ;
525523 kaddr += PAGE_SIZE - reclen ;
@@ -550,7 +548,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
550548 de = (ext2_dirent * ) ((char * ) de + rec_len );
551549 }
552550 unlock_page (page );
553- ext2_put_page (page , page_addr );
551+ ext2_put_page (page , kaddr );
554552 }
555553 BUG ();
556554 return - EINVAL ;
@@ -577,7 +575,7 @@ int ext2_add_link (struct dentry *dentry, struct inode *inode)
577575 err = ext2_handle_dirsync (dir );
578576 /* OFFSET_CACHE */
579577out_put :
580- ext2_put_page (page , page_addr );
578+ ext2_put_page (page , de );
581579 return err ;
582580out_unlock :
583581 unlock_page (page );
@@ -675,19 +673,17 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
675673 */
676674int ext2_empty_dir (struct inode * inode )
677675{
678- void * page_addr = NULL ;
679- struct page * page = NULL ;
676+ struct page * page ;
677+ char * kaddr ;
680678 unsigned long i , npages = dir_pages (inode );
681679
682680 for (i = 0 ; i < npages ; i ++ ) {
683- char * kaddr ;
684- ext2_dirent * de ;
685- page_addr = ext2_get_page (inode , i , 0 , & page );
681+ ext2_dirent * de ;
686682
687- if (IS_ERR (page_addr ))
683+ kaddr = ext2_get_page (inode , i , 0 , & page );
684+ if (IS_ERR (kaddr ))
688685 return 0 ;
689686
690- kaddr = page_addr ;
691687 de = (ext2_dirent * )kaddr ;
692688 kaddr += ext2_last_byte (inode , i ) - EXT2_DIR_REC_LEN (1 );
693689
@@ -713,12 +709,12 @@ int ext2_empty_dir (struct inode * inode)
713709 }
714710 de = ext2_next_entry (de );
715711 }
716- ext2_put_page (page , page_addr );
712+ ext2_put_page (page , kaddr );
717713 }
718714 return 1 ;
719715
720716not_empty :
721- ext2_put_page (page , page_addr );
717+ ext2_put_page (page , kaddr );
722718 return 0 ;
723719}
724720
0 commit comments