Skip to contentSkip to conversation

Call padding callback on flush.

RFC PATCH In review Tom Zanussi 1 participant 1 message Oct 16, 2008

lore
Share & tools
lore
#0 lore raw

RFC PATCH 20/21 Call padding callback on flush.

---
 kernel/relay_pagewriter.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)
kernel/relay_pagewriter.c +12 -4
index 9bc1461..c3369f5 100644
@@ -137,10 +137,18 @@ void pagewriter_flush(struct pagewriter *pagewriter)
 		return;
 
 	mutex_lock(&pagewriters_mutex);
-	for_each_possible_cpu(i)
-		if (pagewriter->buf[i])
-			pagewriter->cb->switch_page(pagewriter->buf[i], 0,
-						    NULL);
+	for_each_possible_cpu(i) {
+		struct pagewriter_buf *buf = pagewriter->buf[i];
+		if (buf) {
+			if (buf->pagewriter->flags & PAGEWRITER_PAD_WRITES) {
+				void *padding = buf->data + buf->offset;
+				size_t padlen = PAGE_SIZE - buf->offset;
+				pagewriter->cb->write_padding(buf, padlen,
+							      padding);
+			}
+			pagewriter->cb->switch_page(buf, 0, NULL);
+		}
+	}
 	relay_flush(pagewriter->rchan);
 	mutex_unlock(&pagewriters_mutex);
 }
Signature · 1 line
1.5.3.5