In my mind I think that an anti-pattern is the cause, and a code-smell is just one of man possible symptons. Is this correct?
For example:
God class antipattern -> large class code smell
Not Invented Here Antipattern -> code that should not even be there
Analysis Paralysis anti-pattern -> no code smell results, but leads to bankcruptcy or something else
So, what I am saying is that maybe code-smells are just one of many possible symptons of an anti-pattern, or "bad practice".