Thread (16 messages) 16 messages, 3 authors, 2018-06-07

Re: [PATCH 6/6] iomap: add a page_done callback

From: Andreas Gruenbacher <agruenba@redhat.com>
Date: 2018-06-06 11:37:24
Also in: linux-fsdevel, linux-xfs

On 6 June 2018 at 12:40, Christoph Hellwig [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This will be used by gfs2 to attach data to transactions for the journaled
data mode.  But the concept is generic enough that we might be able to
use it for other purposes like encryption/integrity post-processing in the
future.

Based on a patch from Andreas Gruenbacher.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 fs/iomap.c            | 3 +++
 include/linux/iomap.h | 8 ++++++++
 2 files changed, 11 insertions(+)
diff --git a/fs/iomap.c b/fs/iomap.c
index f2a491b98b7c..a7ecdd5ddd17 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -201,6 +201,9 @@ iomap_write_end(struct inode *inode, loff_t pos, unsigned len,
                                copied, page, NULL);
        }

+       if (iomap->page_done)
+               iomap->page_done(inode, pos, copied, page, iomap);
+
        if (ret < len)
                iomap_write_failed(inode, pos, len);
        return ret;
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index 69ef622f650e..474e2255ac6e 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -58,6 +58,14 @@ struct iomap {
                struct dax_device   *dax_dev;
                void                *inline_data;
        };
+
+       /*
+        * Called when finished processing a page in the mapping returned in
+        * thus iomap.  At least for now this is only supported in the buffered
"thus" -> "this"
+        * write path.
+        */
+       void (*page_done)(struct inode *inode, loff_t pos, unsigned copied,
+                       struct page *page, struct iomap *iomap);
 };

 /*
--
2.14.2
Andreas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help