Re: Hard lock when mounting loopback file

Marius Gedminas (mgedmin@centras.lt)
Sun, 13 Jan 2002 13:52:30 +0200


On Sat, Jan 12, 2002 at 11:49:04PM -0800, Andrew Morton wrote:
> I don't know a thing about fat layout, but it appears that it uses a
> linked list of blocks, and if that list ends up pointing back onto
> itself, the kernel goes into an infinite loop in several places chasing
> its way to the end of the list.
>
> The below patch fixed it for me, and I was able to mount and read
> your filesystem image.
>
> Unless someone has a smarter fix, I'll send this to the kernel
> maintainers in a week or two.

It seems to me that this patch will find only those infinite loops where
the last link of the chain points to itself. But there could be loops
where the last link points to the middle of the chain.

Additional check on the number of followed links could be useful there.
No chain should be longer than the number of clusters on the fs.
Although on large FAT32 filesystems the number of clusters can be high,
a very long loop is still better than an infinite one. (In cases where
we know the file size, this limit can be reduced to
file_size/cluster_size + 1 links).

Marius Gedminas

-- 
This company has performed an illegal operation and will be shut down. If
the problem persists, contact your vendor or appeal to a higher court.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/