On Sun, Jun 19, 2005 at 07:04:49PM +0200, Jan De Luyck wrote:
> Hello lists,
> I've had some XFS troubles today, and after cleaning up with xfs_repair and
> I'm stuck with one undeletable directory in /lost+found:
> precious:/lost+found# ls -l
> total 8
> drwxrwxrwx 2 root root 8192 Jun 19 2005 4207214
> precious:/lost+found# rm -r 4207214
> rm: cannot remove directory `4207214': Directory not empty
> precious:/lost+found# ls -l 4207214/
> total 0
> So there's one dir 4207214 there, and i can rename it and whatever, just not
> remove it.
> xfs_repair didn't solve the problem.
> Any ideas?
What does: xfs_db -r -c 'inode 4207214' -c print /dev/XXX
I have seen a similar thing once before, awhile back, where the
directory inode was "empty" (only . and ..) and hence should've
been in shortform, but other fields indicated the inode was in
extent form still. Never got to the bottom of it... I'd guess
there's somehow a case where the kernel XFS code can miss this
transformation - not sure where/how though.
If it comes to it, you can always zero out individual inode fields
for that inode in xfs_db (with -x option to enable write mode) and
then xfs_repair should be able to get past it.