Commit 1507b171 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

kernel2: Fixes für Pipes

! kernel2: Wenn das schreibende Ende einer Pipe geschlossen wird, muss
  auf dem lesenden Ende auch EOF signalisiert werden

! kernel2: Wenn es von der Pipe im Moment nichts mehr zu lesen gibt,
  dann ist das kein ungültiger Aufruf, sondern nur -EAGAIN
Signed-off-by: Kevin Wolf's avatarKevin Wolf <>
parent 1c67ff5e
......@@ -61,8 +61,10 @@ static int pipe_read(struct lio_resource* res, uint64_t offset, size_t bytes,
struct pipehandle* ph = res->opaque;
BUG_ON(res->size != ph->bufsize);
if (offset >= res->size) {
if (offset > res->size) {
return -EINVAL;
} else if (offset == res->size) {
return -EAGAIN;
bytes = MIN(bytes, res->size - offset);
......@@ -129,6 +131,8 @@ void lio_destroy_pipe(struct lio_resource* res)
void pipe_close(struct lio_stream* s)
s->res_write->moredata = false;
if (s->res_read->ref == 0) {
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment