Commit 57f91328 authored by Kevin Wolf's avatar Kevin Wolf

kernel2: lio_seek()-Restriktionen für Pipes lockern

* kernel2: lio_seek() geht jetzt eingeschränkt auch für Pipes, es
  betrifft dann immer die Position im Lesestream. Erlaubt ist es, die
  aktuelle Position zu ermitteln und (relativ) vorwärts zu springen.
Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
parent a35acbe8
......@@ -612,13 +612,12 @@ out:
*/
int64_t lio_seek(struct lio_stream* s, int64_t offset, int whence)
{
if (s->res_read != s->res_write) {
return -EINVAL;
}
bool seekable = s->res_read->seekable && (s->res_read == s->res_write);
/* LIO_SEEK_CUR zum Herausfinden der aktuellen Position geht auch auf
* Ressourcen, die eigentlich kein seek unterstützen. */
if (!s->res_read->seekable && (whence != LIO_SEEK_CUR || offset)) {
/* LIO_SEEK_CUR zum Herausfinden der aktuellen Position oder zum
* Überspringen von Daten geht auch auf Ressourcen, die eigentlich kein
* seek unterstützen. */
if (!seekable && (whence != LIO_SEEK_CUR || offset < 0)) {
return -EINVAL;
}
......
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