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 ---