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>--