Recently I watched an old EEVBlog episode (#102) where Dave discusses and builds a basic constant current load. To try it out, I quickly built the circuit on a breadboard and got curious to fully understand how it works. For the op-amp I used the LM2904 and for the mosfet a STP60NF06, then I also used a 0 to 9V rail. I made a quick schematic (not showing my exact components) below:

If I understand it correctly then basically the op-amp drives the mosfet to allow a current to flow through the 1 ohm resistor (R1) to ground. The voltage across the resistor is then also seen at the inverting input of the op-amp. The op-amp will drive the mosfet until its two inputs are equal, so by increasing the voltage on the non-inverting input the op-amp will drive the mosfet harder allowing a larger current to flow.

So now for the part I am having trouble with, when I increase the voltage (up to Vcc - 2V) on the non-inverting input and measure the output voltage I can't get it to go higher than about 5.8V. From my understanding of the datasheet the output voltage should swing to Vcc-1.5 for this op-amp and I should be able to see 7.5V on the output. To test this I built another circuit but without the mosfet and sure the maximum output from the op-amp is 7.8V. So why am I not getting it when driving the mosfet?

The gate-source current should be small enough that the op-amp would have no problem driving it to the maximum swing right?