As it is, short copy in write() to append-only file will failto truncate the excessive allocated blocks. As the matter offact, all checks in ufs_truncate_blocks() are either redundantor wrong for that caller. As for the only other caller(ufs_evict_inode()), we only need the file type checks there.