On 2018年01月13日 05:04, Sebastian Andrzej Siewior wrote: > Hi, > > so I had bad memory and before I realized it and removed it btrfs took some > damage. Now I have this: > > |ls -lh crap/ > |ls: cannot access 'crap/2f3f379b2a3d7499471edb74869efe-1948311.d': No such file or directory > |ls: cannot access 'crap/454bf066ddfbf42e0f3b77ea71c82f-878732.o': No such file or directory > |total 0 > |-????????? ? ? ? ? ? 2f3f379b2a3d7499471edb74869efe-1948311.d > |-????????? ? ? ? ? ? 454bf066ddfbf42e0f3b77ea71c82f-878732.o > > and in dmesg I see: > > | BTRFS critical (device sda4): invalid dir item type: 33 > | BTRFS critical (device sda4): invalid dir item name len: 8231 > > `btrfs check' (from v4.14.1) finds them and prints them but has no idea > what to do with it. Would it be possible to let the check tool rename > the offended filename to something (like its inode number) put it in > lost+found if it has any data attached to it and otherwise simply remove > it? Right now I can't remove that folder. 'Btrfs check' output please. And in fact, btrfs check --repair has the ability to move/re-link such file and keeps its content, as long as there is any info found in DIR_INDEX/DIR_ITEM/INODE_REF. If repair can't handle it, the output could help us to craft such case and enhance btrfs-progs to repair it. Thanks, Qu > > Sebastian > -- > 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 >
Attachment:
signature.asc
Description: OpenPGP digital signature
