ustream: another fix for ustream_read_buf_full() with split read buffers
authorFelix Fietkau <nbd@openwrt.org>
Thu, 31 Jan 2013 17:10:16 +0000 (18:10 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 31 Jan 2013 17:10:52 +0000 (18:10 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
ustream.h

index 24a18e3c70fd40113354b430dfc9c52747b2ff6f..6431744155f810f5c8d2b8d3a4b57c47de60e490 100644 (file)
--- a/ustream.h
+++ b/ustream.h
@@ -171,7 +171,8 @@ static inline int ustream_pending_data(struct ustream *s, bool write)
 
 static inline bool ustream_read_buf_full(struct ustream *s)
 {
-       return ustream_pending_data(s, false) == s->r.buffer_len &&
+       struct ustream_buf *buf = s->r.data_tail;
+       return buf && buf->data == buf->head && buf->tail == buf->end &&
               s->r.buffers == s->r.max_buffers;
 }