… | |
… | |
1630 | return 0; \ |
1630 | return 0; \ |
1631 | } |
1631 | } |
1632 | |
1632 | |
1633 | static void eio_execute (etp_worker *self, eio_req *req) |
1633 | static void eio_execute (etp_worker *self, eio_req *req) |
1634 | { |
1634 | { |
1635 | errno = 0; |
|
|
1636 | |
|
|
1637 | switch (req->type) |
1635 | switch (req->type) |
1638 | { |
1636 | { |
1639 | case EIO_READ: ALLOC (req->size); |
1637 | case EIO_READ: ALLOC (req->size); |
1640 | req->result = req->offs >= 0 |
1638 | req->result = req->offs >= 0 |
1641 | ? pread (req->int1, req->ptr2, req->size, req->offs) |
1639 | ? pread (req->int1, req->ptr2, req->size, req->offs) |
… | |
… | |
1722 | times = tv; |
1720 | times = tv; |
1723 | } |
1721 | } |
1724 | else |
1722 | else |
1725 | times = 0; |
1723 | times = 0; |
1726 | |
1724 | |
1727 | |
|
|
1728 | req->result = req->type == EIO_FUTIME |
1725 | req->result = req->type == EIO_FUTIME |
1729 | ? futimes (req->int1, times) |
1726 | ? futimes (req->int1, times) |
1730 | : utimes (req->ptr1, times); |
1727 | : utimes (req->ptr1, times); |
1731 | } |
1728 | } |
1732 | break; |
1729 | break; |
… | |
… | |
1741 | case EIO_CUSTOM: |
1738 | case EIO_CUSTOM: |
1742 | ((void (*)(eio_req *))req->feed) (req); |
1739 | ((void (*)(eio_req *))req->feed) (req); |
1743 | break; |
1740 | break; |
1744 | |
1741 | |
1745 | default: |
1742 | default: |
|
|
1743 | errno = ENOSYS; |
1746 | req->result = -1; |
1744 | req->result = -1; |
1747 | break; |
1745 | break; |
1748 | } |
1746 | } |
1749 | |
1747 | |
1750 | req->errorno = errno; |
1748 | req->errorno = errno; |