[PATCH 3/4 v2] code clean up for dio fallocate handling

View: New views
2 Messages — Rating Filter:   Alert me  

[PATCH 3/4 v2] code clean up for dio fallocate handling

by Mingming Caoc :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

ext4: code clean up for dio fallocate handling

The ext4_debug() call in ext4_end_io_dio() (inode.c) has a
should be moved after checking the io_end structure to be not a NULL pointer.

The comment above ext4_get_block_dio_write() ("Maximum
number of blocks...") is a duplicate; the original and correct comment
is above the #define DIO_MAX_BLOCKS up above.

The check for allocated > max_blocks in ext4_split_unwritten_extents()
can be removed, since the code returns immediately once allocated blocks is
less or equals to the requested blocks to convert.

Based on review comments from Curt Wohlgemuth.

Signed-off-by: Mingming Cao <cmm@...>
---
 fs/ext4/extents.c |   96 +++++++++++++++++++++++++-----------------------------
 fs/ext4/inode.c   |    9 ++---
 2 files changed, 50 insertions(+), 55 deletions(-)

Index: linux-2.6.31-rc4/fs/ext4/inode.c
===================================================================
--- linux-2.6.31-rc4.orig/fs/ext4/inode.c
+++ linux-2.6.31-rc4/fs/ext4/inode.c
@@ -3367,8 +3367,6 @@ out:
  return ret;
 }
 
-/* Maximum number of blocks we map for direct IO at once. */
-
 static int ext4_get_block_dio_write(struct inode *inode, sector_t iblock,
    struct buffer_head *bh_result, int create)
 {
@@ -3576,13 +3574,14 @@ static void ext4_end_io_dio(struct kiocb
         ext4_io_end_t *io_end = iocb->private;
  struct workqueue_struct *wq;
 
+ /* if not async direct IO or dio with 0 bytes write, just return */
+ if (!io_end || !size)
+ return;
+
  ext_debug("ext4_end_io_dio(): io_end 0x%p"
   "for inode %lu, iocb 0x%p, offset %llu, size %llu\n",
   iocb->private, io_end->inode->i_ino, iocb, offset,
   size);
- /* if not async direct IO or dio with 0 bytes write, just return */
- if (!io_end || !size)
- return;
 
  /* if not aio dio with unwritten extents, just free io and return */
  if (io_end->flag != DIO_AIO_UNWRITTEN){


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

Re: [PATCH 3/4 v2] code clean up for dio fallocate handling

by tytso :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Oct 08, 2009 at 06:13:33PM -0700, Mingming wrote:

> ext4: code clean up for dio fallocate handling
>
> The ext4_debug() call in ext4_end_io_dio() (inode.c) has a
> should be moved after checking the io_end structure to be not a NULL pointer.
>
> The comment above ext4_get_block_dio_write() ("Maximum
> number of blocks...") is a duplicate; the original and correct comment
> is above the #define DIO_MAX_BLOCKS up above.
>
> The check for allocated > max_blocks in ext4_split_unwritten_extents()
> can be removed, since the code returns immediately once allocated blocks is
> less or equals to the requested blocks to convert.
>
> Based on review comments from Curt Wohlgemuth.
>
> Signed-off-by: Mingming Cao <cmm@...>

The changes described last paragraph wasn't in the patch.  I assume it
was because patch #4 in this series changed:

        if (allocated <= max_blocks)

to:

        if (iblock == ee_block && allocated <= max_blocks)

I replaced the commit description with the following:


ext4: code clean up for dio fallocate handling

From: Mingming <cmm@...>

The ext4_debug() call in ext4_end_io_dio() should be moved after the
check to make sure that io_end is non-NULL.

The comment above ext4_get_block_dio_write() ("Maximum number of
blocks...") is a duplicate; the original and correct comment is above
the #define DIO_MAX_BLOCKS up above.

Based on review comments from Curt Wohlgemuth.

Signed-off-by: Mingming Cao <cmm@...>
Signed-off-by: "Theodore Ts'o" <tytso@...>

Added to the patch queue

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