[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH v2 1/8] kernel2: lio_seek ohne Veränderung auch für non-seekable erlauben
* kernel2: Es gibt Aufrufer, die lio_seek() mit LIO_SEEK_CUR und
offset = 0 aufrufen, um die aktuelle Position des Dateizeigers
herauszufinden. Das ist auch in Ordnung, wenn die Ressource eigentlich
keine Seeks kann.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/kernel2/src/lostio/client.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/kernel2/src/lostio/client.c b/src/kernel2/src/lostio/client.c
index 545467b..4673a27 100644
--- a/src/kernel2/src/lostio/client.c
+++ b/src/kernel2/src/lostio/client.c
@@ -472,7 +472,13 @@ out:
*/
int64_t lio_seek(struct lio_stream* s, int64_t offset, int whence)
{
- if ((s->res_read != s->res_write) || !s->res_read->seekable) {
+ if (s->res_read != s->res_write) {
+ return -EINVAL;
+ }
+
+ /* 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)) {
return -EINVAL;
}
--
2.1.4