mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Readd O_LARGEFILE flag for openat64 (bug 18781)
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2015-08-10 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
[BZ #18781]
|
||||||
|
* sysdeps/unix/sysv/linux/openat.c (__OPENAT) [MORE_OFLAGS]: Add
|
||||||
|
MORE_OFLAGS to oflag.
|
||||||
|
* io/test-lfs.c (do_test): Test openat64.
|
||||||
|
|
||||||
2015-08-10 Joseph Myers <joseph@codesourcery.com>
|
2015-08-10 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #18789]
|
[BZ #18789]
|
||||||
|
2
NEWS
2
NEWS
@ -10,7 +10,7 @@ Version 2.23
|
|||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
16517, 16519, 17905, 18265, 18480, 18525, 18618, 18647, 18661, 18674,
|
16517, 16519, 17905, 18265, 18480, 18525, 18618, 18647, 18661, 18674,
|
||||||
18787, 18789.
|
18781, 18787, 18789.
|
||||||
|
|
||||||
Version 2.22
|
Version 2.22
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ test_ftello (void)
|
|||||||
int
|
int
|
||||||
do_test (int argc, char *argv[])
|
do_test (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int ret;
|
int ret, fd2;
|
||||||
struct stat64 statbuf;
|
struct stat64 statbuf;
|
||||||
|
|
||||||
ret = lseek64 (fd, TWO_GB+100, SEEK_SET);
|
ret = lseek64 (fd, TWO_GB+100, SEEK_SET);
|
||||||
@ -195,6 +195,25 @@ do_test (int argc, char *argv[])
|
|||||||
error (EXIT_FAILURE, 0, "stat reported size %lld instead of %lld.",
|
error (EXIT_FAILURE, 0, "stat reported size %lld instead of %lld.",
|
||||||
(long long int) statbuf.st_size, (TWO_GB + 100 + 5));
|
(long long int) statbuf.st_size, (TWO_GB + 100 + 5));
|
||||||
|
|
||||||
|
fd2 = openat64 (AT_FDCWD, name, O_RDWR);
|
||||||
|
if (fd2 == -1)
|
||||||
|
{
|
||||||
|
if (errno == ENOSYS)
|
||||||
|
{
|
||||||
|
/* Silently ignore this test. */
|
||||||
|
error (0, 0, "openat64 is not supported");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error (EXIT_FAILURE, errno, "openat64 failed to open big file");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = close (fd2);
|
||||||
|
|
||||||
|
if (ret == -1)
|
||||||
|
error (EXIT_FAILURE, errno, "error closing file");
|
||||||
|
}
|
||||||
|
|
||||||
test_ftello ();
|
test_ftello ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int oflag, ...)
|
|||||||
va_end (arg);
|
va_end (arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* We have to add the O_LARGEFILE flag for openat64. */
|
||||||
|
#ifdef MORE_OFLAGS
|
||||||
|
oflag |= MORE_OFLAGS;
|
||||||
|
#endif
|
||||||
|
|
||||||
return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
|
return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
|
||||||
}
|
}
|
||||||
libc_hidden_def (__OPENAT)
|
libc_hidden_def (__OPENAT)
|
||||||
|
Reference in New Issue
Block a user