summaryrefslogtreecommitdiff
path: root/fs/iomap/buffered-io.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2019-10-17 23:12:19 +0300
committerDarrick J. Wong <darrick.wong@oracle.com>2019-10-21 18:51:59 +0300
commitab08b01ec0a205d9c98e712eb504c850a51e6fdb (patch)
tree96e339e6e940bc3fb38daa296060af9efd380617 /fs/iomap/buffered-io.c
parent3e19e6f3eeea26490a84cdd18c7220e640f4837e (diff)
downloadlinux-ab08b01ec0a205d9c98e712eb504c850a51e6fdb.tar.xz
iomap: move struct iomap_page out of iomap.h
Now that all the writepage code is in the iomap code there is no need to keep this structure public. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/iomap/buffered-io.c')
-rw-r--r--fs/iomap/buffered-io.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 901c1a799238..b5ff54fddf1f 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -21,6 +21,23 @@
#include "../internal.h"
+/*
+ * Structure allocated for each page when block size < PAGE_SIZE to track
+ * sub-page uptodate status and I/O completions.
+ */
+struct iomap_page {
+ atomic_t read_count;
+ atomic_t write_count;
+ DECLARE_BITMAP(uptodate, PAGE_SIZE / 512);
+};
+
+static inline struct iomap_page *to_iomap_page(struct page *page)
+{
+ if (page_has_private(page))
+ return (struct iomap_page *)page_private(page);
+ return NULL;
+}
+
static struct bio_set iomap_ioend_bioset;
static struct iomap_page *