There's nothing magic about umount, it just uses a refcount on the fs.
But umount changes the namespace, that's the big difference. For
example if a process is accessing path P which has a component inside
the mount, it _will_ get different results before and after the
umount. This is not acceptable for freezing.
For freezing to work with such a refcounting scheme, we'd have to
count _future_ uses of the fs as well, not just current ones, which is
obviously impossible.
Miklos
--