X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=fs%2Fdirect-io.c;h=fb9aa16a77272818e39294b21506927076da27d7;hb=ca76f5b6bdbdc50af0d7b98cfcf7a2be7e95eb3d;hp=7c3ce73cb6170ee820aec560ece2fafc8b48b83c;hpb=fbae5cbb43512446ba15a3b90039cb127d22ee95;p=cascardo%2Flinux.git diff --git a/fs/direct-io.c b/fs/direct-io.c index 7c3ce73cb617..fb9aa16a7727 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -246,6 +246,9 @@ static ssize_t dio_complete(struct dio *dio, ssize_t ret, bool is_async) if ((dio->op == REQ_OP_READ) && ((offset + transferred) > dio->i_size)) transferred = dio->i_size - offset; + /* ignore EFAULT if some IO has been done */ + if (unlikely(ret == -EFAULT) && transferred) + ret = 0; } if (ret == 0)