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:
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user