lkml.org 
[lkml]   [2022]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 367/389] ext4: avoid remove directory when directory is corrupted
    Date
    From: Ye Bin <yebin10@huawei.com>

    [ Upstream commit b24e77ef1c6d4dbf42749ad4903c97539cc9755a ]

    Now if check directoy entry is corrupted, ext4_empty_dir may return true
    then directory will be removed when file system mounted with "errors=continue".
    In order not to make things worse just return false when directory is corrupted.

    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20220622090223.682234-1-yebin10@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ext4/namei.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
    index 0ba35465ac75..aaf1ed8ba87c 100644
    --- a/fs/ext4/namei.c
    +++ b/fs/ext4/namei.c
    @@ -2929,11 +2929,8 @@ bool ext4_empty_dir(struct inode *inode)
    de = (struct ext4_dir_entry_2 *) (bh->b_data +
    (offset & (sb->s_blocksize - 1)));
    if (ext4_check_dir_entry(inode, NULL, de, bh,
    - bh->b_data, bh->b_size, offset)) {
    - offset = (offset | (sb->s_blocksize - 1)) + 1;
    - continue;
    - }
    - if (le32_to_cpu(de->inode)) {
    + bh->b_data, bh->b_size, offset) ||
    + le32_to_cpu(de->inode)) {
    brelse(bh);
    return false;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-23 14:07    [W:2.935 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site