Preemption

Eddie,

As we discussed some time ago, I reworked my preemption/lock dependency patches as you suggested to unconditionally use mutexes, as well as split out the changes to proclikefs/clickfs from the rest of the locking changes in Click.

With these changes, I am able to run kernel Click on my Ubuntu desktop using the stock kernel (which enables preemption). Without it, I get a SEGFAULT in the kernel (recovered) when I attempt to load Click.

I have been running a variant of these changes on my embedded targets for some time. The x86 target hasn't seen quite as much use, but I have played with simple configs on my desktop and it plays well with the rest of the system.

Please let me know what you think.

Thanks,
Kevin