diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-11-10 09:02:52 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-11-10 09:02:52 +0000 |
commit | 3504bb650f48534549bbd0313dc15fa71455e302 (patch) | |
tree | 742dd9cbcee1147fb36bcc02816bec415544597e /libio/fileops.c | |
parent | cbf4bcd2b3d53de274548dbf4c28017d1f07d5b2 (diff) |
Updated to fedora-glibc-20041110T0839
Diffstat (limited to 'libio/fileops.c')
-rw-r--r-- | libio/fileops.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libio/fileops.c b/libio/fileops.c index 7d90cbaa2d..2d787d296f 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -635,7 +635,7 @@ mmap_remap_check (_IO_FILE *fp) { /* The file added some pages. We need to remap it. */ void *p; -#if defined __linux__ /* XXX */ +#ifdef _G_HAVE_MREMAP p = __mremap (fp->_IO_buf_base, ROUNDED (fp->_IO_buf_end - fp->_IO_buf_base), ROUNDED (st.st_size), MREMAP_MAYMOVE); @@ -989,7 +989,18 @@ _IO_new_file_seekoff (fp, offset, dir, mode) /* Adjust for read-ahead (bytes is buffer). */ offset -= fp->_IO_read_end - fp->_IO_read_ptr; if (fp->_offset == _IO_pos_BAD) - goto dumb; + { + if (mode != 0) + goto dumb; + else + { + result = _IO_SYSSEEK (fp, 0, dir); + if (result == EOF) + return result; + + fp->_offset = result; + } + } /* Make offset absolute, assuming current pointer is file_ptr(). */ offset += fp->_offset; if (offset < 0) |