Throughout, call fcntl64 instead of fcntl or fcntl_worker.

* fcntl.cc (fcntl_worker): Remove.
	(fcntl64): Add fault handler.  Move fcntl_worker stuff here.  Add case
	for locking and call fhandler's lock method directly.  Make sure that
	F_FLOCK flag isn't set in lock call.
	(_fcntl): Add fault handler.
	* fhandler.cc (fhandler_base::fcntl): Drop lock cases.
	* flock.cc (flock): Add fault handler.  Simplify code.  Call fhandlers
	lock method directly instead of fcntl_worker.  Add debug output.
	(lockf): Add fault handler.  Call fhandlers lock method directly
	instead of fcntl_worker.  Add debug output.
	* winsup.h (fcntl_worker): Drop declaration.
	(fcntl64): Declare.
This commit is contained in:
Corinna Vinschen
2008-04-01 10:22:33 +00:00
parent 636c94d853
commit fabfb1a1ee
10 changed files with 109 additions and 95 deletions

View File

@ -209,14 +209,14 @@ public:
fl.l_whence = SEEK_SET;
fl.l_start = 0;
fl.l_len = size;
return fcntl (fd, F_SETLKW, &fl);
return fcntl64 (fd, F_SETLKW, &fl);
}
int unlock (int fd)
{
if (!fl.l_len)
return 0;
fl.l_type = F_UNLCK;
return fcntl (fd, F_SETLKW, &fl);
return fcntl64 (fd, F_SETLKW, &fl);
}
};