Patchwork ext4: Add comments to definition of ext4_io_end_t

login
register
mail settings
Submitter Curt Wohlgemuth
Date March 2, 2012, 4:43 p.m.
Message ID <1330706625-24701-1-git-send-email-curtw@google.com>
Download mbox | patch
Permalink /patch/144283/
State Accepted
Headers show

Comments

Curt Wohlgemuth - March 2, 2012, 4:43 p.m.
This should make it more clear what this structure is used
for, and how some of the (mutually exclusive) fields are
used to keep page cache references.

Signed-off-by: Curt Wohlgemuth <curtw@google.com>
---
 fs/ext4/ext4.h |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
Theodore Ts'o - March 5, 2012, 3:42 p.m.
On Fri, Mar 02, 2012 at 08:43:45AM -0800, Curt Wohlgemuth wrote:
> This should make it more clear what this structure is used
> for, and how some of the (mutually exclusive) fields are
> used to keep page cache references.
> 
> Signed-off-by: Curt Wohlgemuth <curtw@google.com>

Thanks, applied.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 513004f..4dc34ed 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -192,18 +192,25 @@  struct ext4_io_page {
 
 #define MAX_IO_PAGES 128
 
+/*
+ * For converting uninitialized extents on a work queue.
+ *
+ * 'page' is only used from the writepage() path; 'pages' is only used for
+ * buffered writes; they are used to keep page references until conversion
+ * takes place.  For AIO/DIO, neither field is filled in.
+ */
 typedef struct ext4_io_end {
 	struct list_head	list;		/* per-file finished IO list */
 	struct inode		*inode;		/* file being written to */
 	unsigned int		flag;		/* unwritten or not */
-	struct page		*page;		/* page struct for buffer write */
+	struct page		*page;		/* for writepage() path */
 	loff_t			offset;		/* offset in the file */
 	ssize_t			size;		/* size of the extent */
 	struct work_struct	work;		/* data work queue */
 	struct kiocb		*iocb;		/* iocb struct for AIO */
 	int			result;		/* error value for AIO */
-	int			num_io_pages;
-	struct ext4_io_page	*pages[MAX_IO_PAGES];
+	int			num_io_pages;   /* for writepages() */
+	struct ext4_io_page	*pages[MAX_IO_PAGES]; /* for writepages() */
 } ext4_io_end_t;
 
 struct ext4_io_submit {