dir.c (9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e) | dir.c (8f1dca19b1e11785f42e70da796942154f63aef9) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/fs/ext2/dir.c 4 * 5 * Copyright (C) 1992, 1993, 1994, 1995 6 * Remy Card (card@masi.ibp.fr) 7 * Laboratoire MASI - Institut Blaise Pascal 8 * Universite Pierre et Marie Curie (Paris VI) --- 592 unchanged lines hidden (view full) --- 601 ext2_dirent * pde = NULL; 602 ext2_dirent * de = (ext2_dirent *) (kaddr + from); 603 int err; 604 605 while ((char*)de < (char*)dir) { 606 if (de->rec_len == 0) { 607 ext2_error(inode->i_sb, __func__, 608 "zero-length directory entry"); | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/fs/ext2/dir.c 4 * 5 * Copyright (C) 1992, 1993, 1994, 1995 6 * Remy Card (card@masi.ibp.fr) 7 * Laboratoire MASI - Institut Blaise Pascal 8 * Universite Pierre et Marie Curie (Paris VI) --- 592 unchanged lines hidden (view full) --- 601 ext2_dirent * pde = NULL; 602 ext2_dirent * de = (ext2_dirent *) (kaddr + from); 603 int err; 604 605 while ((char*)de < (char*)dir) { 606 if (de->rec_len == 0) { 607 ext2_error(inode->i_sb, __func__, 608 "zero-length directory entry"); |
609 err = -EIO; 610 goto out; | 609 return -EIO; |
611 } 612 pde = de; 613 de = ext2_next_entry(de); 614 } 615 if (pde) 616 from = (char *)pde - kaddr; 617 pos = page_offset(page) + from; 618 lock_page(page); 619 err = ext2_prepare_chunk(page, pos, to - from); | 610 } 611 pde = de; 612 de = ext2_next_entry(de); 613 } 614 if (pde) 615 from = (char *)pde - kaddr; 616 pos = page_offset(page) + from; 617 lock_page(page); 618 err = ext2_prepare_chunk(page, pos, to - from); |
620 BUG_ON(err); | 619 if (err) { 620 unlock_page(page); 621 return err; 622 } |
621 if (pde) 622 pde->rec_len = ext2_rec_len_to_disk(to - from); 623 dir->inode = 0; 624 ext2_commit_chunk(page, pos, to - from); 625 inode->i_ctime = inode->i_mtime = current_time(inode); 626 EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL; 627 mark_inode_dirty(inode); | 623 if (pde) 624 pde->rec_len = ext2_rec_len_to_disk(to - from); 625 dir->inode = 0; 626 ext2_commit_chunk(page, pos, to - from); 627 inode->i_ctime = inode->i_mtime = current_time(inode); 628 EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL; 629 mark_inode_dirty(inode); |
628 err = ext2_handle_dirsync(inode); 629out: 630 return err; | 630 return ext2_handle_dirsync(inode); |
631} 632 633/* 634 * Set the first fragment of directory. 635 */ 636int ext2_make_empty(struct inode *inode, struct inode *parent) 637{ 638 struct page *page = grab_cache_page(inode->i_mapping, 0); --- 98 unchanged lines hidden --- | 631} 632 633/* 634 * Set the first fragment of directory. 635 */ 636int ext2_make_empty(struct inode *inode, struct inode *parent) 637{ 638 struct page *page = grab_cache_page(inode->i_mapping, 0); --- 98 unchanged lines hidden --- |