When a process will go to 'D' state?

I'm using
"Linux hostname 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux"

All the client machines will use Thin-client ,I will use my laptop for working and I will
mount my home directory from server to my laptop.

If I open the firefox in my laptop the firefox window will not open because the process
is in 'D' state, and all other users machines got hang up
and the lockd process is in 'D' state,

#ps ajx | grep firefox
    1  6187  4313  4313 ?           -1 D<    1030   3:16 /usr/lib/firefox-3.5b4pre/firefox-3.5
 7610  7622  7621  7610 pts/3     7621 S+    1030   0:00 grep firefox

if I check the syslog

Jul 13 10:35:56 hostname kernel: [222583.872059] lockd: cannot monitor laptop
Jul 13 10:35:57 hostname kernel: [222583.872059] lockd: cannot monitor laptop

#ps ajx | grep lockd

root      9178  0.0  0.0      0     0 ?        D<   13:35   0:00 [lockd]
root     11039  0.0  0.0   3340   796 pts/3    S<+  14:18   0:00 grep lockd

The same message for all the client machines.

When a process will goes to 'D' state?

When the lockd process will go to 'D' state?

What is the purpose of lockd process.

D means device driver. The process is suspended while it waits for a system call of some sort to finish, often a read() or write(). It's unkillable in this state.

lockd is part of the kernel, not truly a process. I think it's part of the kernel system that handles nfs. The message about lockd you see is related to NFS problems.

Maybe this will help you:

Debian User Forums � View topic - kernel: lockd: cannot monitor

Anyway, NFS is a very elderly protocol by now and has a few unsolvable flaws, you might consider alternatives like CIFS.