On 06/07/2018 02:54 PM, Nikolay Borisov wrote:
On 7.06.2018 09:55, Su Yue wrote:
This patchset can be fetch from my github:
https://github.com/Damenly/btrfs-progs/commits/odd_inode_flags
It's based on kdave/devel whose HEAD is:
commit 1c846faaf87fbb01e080c94098c02b1695ed86dd
Author: Nikolay Borisov <nborisov@xxxxxxxx>
Date: Mon May 28 09:36:50 2018 +0300
btrfs-progs: Remove fs_info argument from write_ctree_super
symlinks should never have append/immutable attributes.
This patchset enables btrfs check to verify such corruption.
PATCH[1] is for original mode.
PATCH[2] is for original mode.
PATCH[3] adds a test image.
For further use, the directory is called bad-inode-flags.
#issue 133
So you areadding code to detect the problem but not to fix it. Is there
some technical reason why you didn't implement clearing those flags or
just didn't do it for this series? IMHO it will be good if the check +
TBH I just didn't plan to do it while writing the patches.
If the functionality of repair is necessary, I'm willing to
do it.
However, it seems I have to complete work about repair mismatched file
type first. So we can verify whether a bad inode is a symlink with
append/immutable attributes or a normal file set with BTRFS_FT_SYMLINK.
I'm fine that v2 patchset is to be replaced then support repair late
or to be reverted.
Thanks,
Su
repair code are part of the same series. Then you can also extend the
test case to cover the 2 functionalities?
---
Changelog:
v3:
Use S_ISLNK instead of BTRFS_FT_SYMLINK. Thanks Misono.
Change the test image created by hand.
v2:
Use "rec->errors |=" instead of "rec->errors =" in patch[1].
Define new error bit of invalid inode flags in lowmem mode.
Adjust print message in patch[2]. Thanks, Qu and Nikolay.
Rename test directory from odd-inode-flags to bad-inode-flags.
Su Yue (3):
btrfs-progs: check: check symlinks with append/immutable flags
btrfs-progs: check: lowmem: check symlinks with append/immutable flags
btrfs-progs: fsck-tests: add test case to check symlinks with bad
flags
check/main.c | 7 +++++++
check/mode-lowmem.c | 10 ++++++++++
check/mode-lowmem.h | 1 +
check/mode-original.h | 1 +
.../034-bad-inode-flags/default_case.img | Bin 0 -> 4096 bytes
tests/fsck-tests/034-bad-inode-flags/test.sh | 15 +++++++++++++++
6 files changed, 34 insertions(+)
create mode 100644 tests/fsck-tests/034-bad-inode-flags/default_case.img
create mode 100755 tests/fsck-tests/034-bad-inode-flags/test.sh
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html