2022-12-31 15:16:53

by Tanmay Bhushan

[permalink] [raw]
Subject: [PATCH] btrfs: Fix ASSERT of em->len when getting extent

em->len is incorrectly asserted which is leading to it's
assignment to sectorsize instead of being check for it.

Signed-off-by: Tanmay Bhushan <[email protected]>
---
fs/btrfs/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 8bcad9940154..e49358048a98 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -7092,7 +7092,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
* Other members are not utilized for inline extents.
*/
ASSERT(em->block_start == EXTENT_MAP_INLINE);
- ASSERT(em->len = fs_info->sectorsize);
+ ASSERT(em->len == fs_info->sectorsize);

ret = read_inline_extent(inode, path, page);
if (ret < 0)
--
2.34.1


2023-01-02 15:29:58

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: Fix ASSERT of em->len when getting extent

On Sat, Dec 31, 2022 at 04:05:01PM +0100, Tanmay Bhushan wrote:
> em->len is incorrectly asserted which is leading to it's
> assignment to sectorsize instead of being check for it.
>
> Signed-off-by: Tanmay Bhushan <[email protected]>

Added to misc-next, thanks.

2023-01-03 10:07:52

by Anand Jain

[permalink] [raw]
Subject: Re: [PATCH] btrfs: Fix ASSERT of em->len when getting extent

On 12/31/22 23:05, Tanmay Bhushan wrote:
> em->len is incorrectly asserted which is leading to it's
> assignment to sectorsize instead of being check for it.
>
> Signed-off-by: Tanmay Bhushan <[email protected]>
> ---
> fs/btrfs/inode.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 8bcad9940154..e49358048a98 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -7092,7 +7092,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
> * Other members are not utilized for inline extents.
> */
> ASSERT(em->block_start == EXTENT_MAP_INLINE);
> - ASSERT(em->len = fs_info->sectorsize);
> + ASSERT(em->len == fs_info->sectorsize);

Good catch.

Reviewed-by: Anand Jain <[email protected]>

>
> ret = read_inline_extent(inode, path, page);
> if (ret < 0)