CVS update: samba/source/smbd

Jeremy Allison jra at samba.org
Fri Jun 7 09:55:37 EST 2002


Date:	Thu Jun  6 16:55:37 2002
Author:	jra

Update of /data/cvs/samba/source/smbd
In directory va:/tmp/cvs-serv14780/smbd

Modified Files:
      Tag: SAMBA_2_2
	oplock.c oplock_linux.c process.c 
Log Message:
Overly complex but neccessary fix for kernel oplock problems. The issue
is that there are some times when we should return an EINTR from a select,
some times when we should not. As we can take a signal at any time, we
have to eat EINTR's in some selects. This means we need to check for
kernel oplock breaks more often in the main loop, as well as add the
queuing mechanism needed for the changenotify code (due to the mistake
in understanding POSIX semantics w.r.t. setting a signal mask in a 
signal handler). This code now passes all my tests.
However, (and IMHO and I know tridge disagrees) - the correct way to
fix this is to run with RT signals blocked and explicitly unblock
them just before the main select, block them after and then process
them all in one place. Just my 2cents :-).
Jeremy.


Revisions:
oplock.c		1.43.4.30 => 1.43.4.31
	http://www.samba.org/cgi-bin/cvsweb/samba/source/smbd/oplock.c?r1=1.43.4.30&r2=1.43.4.31
oplock_linux.c		1.7.4.7 => 1.7.4.8
	http://www.samba.org/cgi-bin/cvsweb/samba/source/smbd/oplock_linux.c?r1=1.7.4.7&r2=1.7.4.8
process.c		1.44.2.41 => 1.44.2.42
	http://www.samba.org/cgi-bin/cvsweb/samba/source/smbd/process.c?r1=1.44.2.41&r2=1.44.2.42




More information about the samba-cvs mailing list