2017-11-27 09:21:27

by sunqiuyang

[permalink] [raw]
Subject: [PATCH 1/1] ext4: remove redundant assignment in ext4_iomap_begin()

From: Qiuyang Sun <[email protected]>

This line will not change the value of map.m_lblk in any case.

Signed-off-by: Qiuyang Sun <[email protected]>
---
fs/ext4/inode.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 9f836e2..d4a42b1 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3443,7 +3443,6 @@ static int ext4_iomap_begin(struct inode *inode, loff_t offset, loff_t length,

if (es.es_lblk < map.m_lblk)
offs = map.m_lblk - es.es_lblk;
- map.m_lblk = es.es_lblk + offs;
map.m_len = es.es_len - offs;
delalloc = true;
}
--
2.5.0


2017-12-21 16:47:54

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH 1/1] ext4: remove redundant assignment in ext4_iomap_begin()

On Mon, Nov 27, 2017 at 05:21:27PM +0800, sunqiuyang wrote:
> From: Qiuyang Sun <[email protected]>
>
> This line will not change the value of map.m_lblk in any case.

I don't see that it is absolutely guaranteed. And if you are
depending on ext4_es_find_delayed_extent() returns, then (a) the
following line which adjusts map.m_len could also be dropped, and (b)
we should add a WARN_ON to make the code robust against future changes
to the above function.

- Ted

>
> Signed-off-by: Qiuyang Sun <[email protected]>
> ---
> fs/ext4/inode.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index 9f836e2..d4a42b1 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -3443,7 +3443,6 @@ static int ext4_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>
> if (es.es_lblk < map.m_lblk)
> offs = map.m_lblk - es.es_lblk;
> - map.m_lblk = es.es_lblk + offs;
> map.m_len = es.es_len - offs;
> delalloc = true;
> }
> --
> 2.5.0
>