My understanding of soft quotas is that, say, you give a user a soft quota of 20 MB and a hard quota of 50 MB.
If they are over their soft quota, then when they log in, and every time they try to write out a file, it succeeds, but also gives them a message saying, "You're over quota. Fix it."
If they're over their hard quota, it just doesn't succeed.
Does anyone else have a different impression?
Yes - I do.
I have the impression that, over NFS, attempts to write to a file that put you over your soft quota give *NO MESSAGE WHATSOEVER*.
I have that impression because I've seen the NFS client code in, at least, SunOS 4.x (back when I worked at Sun and then at Auspex), and because I know that the NFS protocol has no mechanism to return a "this write succeeded but it went over your soft quota" indication; only the server knows that a write went over the soft quota, and it has no mechanism to communicate that to the client.
Do not be confused by the fact that you get a warning if you go over the soft quota on a *local* file system - what counts here is whether you get when when you go over it on an *NFS-mounted* file system, and, at best, what you get there is a message from the "quota" command, which some UNIXes run as part of the login process.
And how are soft quotas implemented over NFS?
Most of quotas are implemented in the server's file system; the only way NFS is involved is
1) there's a "this went over your *HARD* quota" error indication that can be returned by an NFS operation;
2) there's an ONC RPC protocol that a client can use to query the state of some particular user's quota on some particular server (that's what the "quota" command does in SunOS, for example).
Soft quotas are implemented by the server's file system; 1) is completely unaffected by soft quotas (except to the extent that if you're over your soft quota, when the "grace period" expires attempts to use additional resources get a "you're over your hard quota" error), and 2) is affected only in that the information you get back about a user's quota include the user's soft limits as well as their hard limits.