• Chao Yu's avatar
    f2fs: fix to update dir's i_pino during cross_rename · 2a60637f
    Chao Yu authored
    As Eric reported:
    
    RENAME_EXCHANGE support was just added to fsstress in xfstests:
    
    	commit 65dfd40a97b6bbbd2a22538977bab355c5bc0f06
    	Author: kaixuxia <xiakaixu1987@gmail.com>
    	Date:   Thu Oct 31 14:41:48 2019 +0800
    
    	    fsstress: add EXCHANGE renameat2 support
    
    This is causing xfstest generic/579 to fail due to fsck.f2fs reporting errors.
    I'm not sure what the problem is, but it still happens even with all the
    fs-verity stuff in the test commented out, so that the test just runs fsstress.
    
    generic/579 23s ... 	[10:02:25]
    [    7.745370] run fstests generic/579 at 2019-11-04 10:02:25
    _check_generic_filesystem: filesystem on /dev/vdc is inconsistent
    (see /results/f2fs/results-default/generic/579.full for details)
     [10:02:47]
    Ran: generic/579
    Failures: generic/579
    Failed 1 of 1 tests
    Xunit report: /results/f2fs/results-default/result.xml
    
    Here's the contents of 579.full:
    
    _check_generic_filesystem: filesystem on /dev/vdc is inconsistent
    *** fsck.f2fs output ***
    [ASSERT] (__chk_dots_dentries:1378)  --> Bad inode number[0x24] for '..', parent parent ino is [0xd10]
    
    The root cause is that we forgot to update directory's i_pino during
    cross_rename, fix it.
    
    Fixes: 32f9bc25 ("f2fs: support ->rename2()")
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Tested-by: default avatarEric Biggers <ebiggers@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    2a60637f
namei.c 29.9 KB