On 7.06.2018 12:10, Su Yue wrote: > > > 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. That's fine, however in case this code detects such a symlink what's the user supposed to do - they can just delete the symlink because it's immutable/append-only. SO they will know they have such symlinks but won't be able to repair them. > > 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
