Thread (4 messages) 4 messages, 4 authors, 2011-06-28

Re: [PATCH v2] ext4: avoid redundant cache finding if flags not cantian PUNCH_OUT

From: Eric Gouriou <hidden>
Date: 2011-06-28 00:45:02

On Mon, Jun 27, 2011 at 12:59, Darrick J. Wong [off-list ref] wrote:
On Mon, Jun 27, 2011 at 06:45:13PM +0800, Robin Dong wrote:
quoted
Subject: [PATCH v2] ext4: avoid redundant cache finding if flags not cantian
I suspect you mean "contain" as opposed to "cantian".
The patch summary line could also use some shortening.
quoted
In old code, ext4 will find extent in cache first even flags does
not contian PUNCH_OUT, that may waste some time.
Same here ("contian").
How about something along the lines of:
---------
ext4: avoid wasted extent cache lookup if !PUNCH_OUT_EXT

This patch avoids an extraneous lookup of the extent cache
in ext4_ext_map_blocks() when the flag
EXT4_GET_BLOCKS_PUNCH_OUT_EXT is absent.

The existing logic was performing the lookup but not making
use of the result. The patch simply reverses the order of evaluation
in the condition.

Since ext4_ext_in_cache() does not initialize newex on misses, bypassing
its invocation does not introduce any new issue in this regard.
---------

 Regards - Eric
--D
quoted
Signed-off-by: Robin Dong <redacted>
Reviewed-by: Lukas Czerner <redacted>
---
 fs/ext4/extents.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index eb63c7b..fed2633 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -3358,8 +3358,8 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
      trace_ext4_ext_map_blocks_enter(inode, map->m_lblk, map->m_len, flags);

      /* check in cache */
-     if (ext4_ext_in_cache(inode, map->m_lblk, &newex) &&
-             ((flags & EXT4_GET_BLOCKS_PUNCH_OUT_EXT) == 0)) {
+     if (!(flags & EXT4_GET_BLOCKS_PUNCH_OUT_EXT) &&
+             ext4_ext_in_cache(inode, map->m_lblk, &newex)) {
              if (!newex.ee_start_lo && !newex.ee_start_hi) {
                      if ((flags & EXT4_GET_BLOCKS_CREATE) == 0) {
                              /*
--
1.7.1

--
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
--
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
--
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help