Workaround for SuSE 7 2.2.16 kernel bug.

This commit is contained in:
Andreas Mohr 2001-01-12 23:02:39 +00:00 committed by Alexandre Julliard
parent f3ea345b2d
commit 22c80a2e9a
1 changed files with 4 additions and 1 deletions

View File

@ -342,7 +342,10 @@ static int set_file_pointer( handle_t handle, int *low, int *high, int whence )
if ((result = lseek( file->obj.fd, *low, whence )) == -1) if ((result = lseek( file->obj.fd, *low, whence )) == -1)
{ {
/* Check for seek before start of file */ /* Check for seek before start of file */
if ((errno == EINVAL) && (whence != SEEK_SET) && (*low < 0))
/* also check EPERM due to SuSE7 2.2.16 lseek() EPERM kernel bug */
if (((errno == EINVAL) || (errno == EPERM))
&& (whence != SEEK_SET) && (*low < 0))
set_error( 0xc0010000 | ERROR_NEGATIVE_SEEK /* FIXME */ ); set_error( 0xc0010000 | ERROR_NEGATIVE_SEEK /* FIXME */ );
else else
file_set_error(); file_set_error();