Andrew Deason wrote:
dtrace: script 'enospc.d' matched 1066 probes /usr/local/bin/bash: line 110: fullvolume/bar: No space left on device CPU ID FUNCTION:NAME 0 7103 ntoh_syserr_conv:return Returned ENOSPC 0 7657 rx_EndCall:return Returned ENOSPC 0 6683 RXAFS_CreateFile:return Returned ENOSPC 0 7653 afs_CheckCode:return Returned ENOSPC 0 6955 afs_create:return Returned ENOSPC 0 6975 gafs_create:return Returned ENOSPC ^CSo, looks like the culript is ntoh_syserr_conv in src/rx/rx_misc.c, which explicitly returns ENOSPC instead of EDQUOT when Solaris is detected. I've attached a patch (untested) to just return EDQUOT when it's defined, and ENOSPC otherwise. There's a lot of other code in there, though, that assumes EDQUOT doesn't exist on Solaris at all. There's plenty of other functions that appear to have the same issue as this that I didn't touch at all. It seems like a lot of conditionals could be changed from defined(AFS_SUN5_ENV) to defined(AFS_SUN5_ENV) && !defined(AFS_SUN58_ENV) or something, but I thought checking on EDQUOT's presence would be more robust.
Thanks. I will commit a fix.
smime.p7s
Description: S/MIME Cryptographic Signature
