Thread (21 messages) 21 messages, 2 authors, 2019-09-11

Re: [PATCH v2 5/6] ext4: introduce direct IO write path using iomap infrastructure

From: Matthew Bobrowski <hidden>
Date: 2019-09-10 10:31:56
Also in: linux-fsdevel

On Mon, Sep 09, 2019 at 02:56:15PM +0530, Ritesh Harjani wrote:
On 9/9/19 4:49 AM, Matthew Bobrowski wrote:
quoted
+/*
+ * For a write that extends the inode size, ext4_dio_write_iter() will
+ * wait for the write to complete. Consequently, operations performed
+ * within this function are still covered by the inode_lock().
+ */
Maybe add a comment that on success this returns 0.
OK, can do.
quoted
+static int ext4_dio_write_end_io(struct kiocb *iocb, ssize_t size, int error,
+				 unsigned int flags)
+{
+	int ret = 0;
No need to initialize ret.

quoted
+	loff_t offset = iocb->ki_pos;
+	struct inode *inode = file_inode(iocb->ki_filp);
+
+	if (error) {
+		ret = ext4_handle_failed_inode_extension(inode, offset + size);
+		return ret ? ret : error;
+	}
+
+	if (flags & IOMAP_DIO_UNWRITTEN) {
+		ret = ext4_convert_unwritten_extents(NULL, inode,
+						     offset, size);
+		if (ret)
+			return ret;
+	}
+
+	if (offset + size > i_size_read(inode)) {
+		ret = ext4_handle_inode_extension(inode, offset, size, 0);
+		if (ret)
+			return ret;
+	}
+	return ret;
Directly return 0, since if it falls here it mans it is a success case.
You are anyway returning error from above error paths.
OK, sure.

--<M>--
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help