This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 14 Jun 2016 18:54, Adhemerval Zanella wrote:
> This patch fixes the p{readv,writev}{64} consolidation implementation
> from commits 4e77815 and af5fdf5. Different from pread/pwrite
> implementation, preadv/pwritev implementation does not require
> __ALIGNMENT_ARG because kernel syscall prototypes define
> the high and low part of the off_t, if it is the case, directly
> (different from pread/pwrite where the architecture ABI for passing
> 64-bit values must be in consideration for passsing the arguments).
i had looked at that specifically but thought it ok because the old code
was using the alignment arg. was the old code broken too ?
this is what the preadv code looked like:
-ssize_t
-__libc_preadv (int fd, const struct iovec *vector, int count, off_t offset)
-{
- assert (sizeof (offset) == 4);
- return SYSCALL_CANCEL (preadv, fd,
- vector, count, __ALIGNMENT_ARG
- __LONG_LONG_PAIR (offset >> 31, offset));
-}
although i guess this isn't too surprising as this code was in the
generic sysdeps dir which currently doesn't have as many users as
we wish it did :).
> +#define FAIL() \
> + do { printf ("error: failure on line %d\n", __LINE__); return 1; } while (0)
> ...
> + ret = pwritev (temp_fd, iov, 2, 0);
> + if (ret == -1)
> + FAIL ();
as a personal stance, never been a big fan of messages that just have a
line number. when you get reports/logs, you end having to chase down the
exact same source tree as the reporter.
why can't we just assert() everywhere ? we rely on that in tests already
and we wouldn't have to do any checking otherwise.
ret = pwritev (temp_fd, iov, 2, 0);
assert (ret == sizeof buf1 + sizeof buf2);
-mike
Attachment:
signature.asc
Description: Digital signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |