[PATCH] bcachefs: Initialize from_inode members for bhc_io_opts

Roxana Nicolescu posted 1 patch 9 months, 1 week ago
fs/bcachefs/inode.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] bcachefs: Initialize from_inode members for bhc_io_opts
Posted by Roxana Nicolescu 9 months, 1 week ago
When there is no inode source, all "from_inode" members in the structure
bhc_io_opts should be set false.

Fixes: 7a7c43a0c1ecf ("bcachefs: Add bch_io_opts fields for indicating whether the opts came from the inode")
Reported-by: syzbot+c17ad4b4367b72a853cb@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=c17ad4b4367b72a853cb
Signed-off-by: Roxana Nicolescu <nicolescu.roxana@protonmail.com>
---
 fs/bcachefs/inode.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c
index 04ec05206f8c..339b80770f1d 100644
--- a/fs/bcachefs/inode.c
+++ b/fs/bcachefs/inode.c
@@ -1198,6 +1198,7 @@ void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c,
 		opts->_name##_from_inode = true;			\
 	} else {							\
 		opts->_name = c->opts._name;				\
+		opts->_name##_from_inode = false;			\
 	}
 	BCH_INODE_OPTS()
 #undef x
-- 
2.34.1
Re: [PATCH] bcachefs: Initialize from_inode members for bhc_io_opts
Posted by Kent Overstreet 9 months, 1 week ago
On Tue, Mar 11, 2025 at 03:06:10PM +0000, Roxana Nicolescu wrote:
> When there is no inode source, all "from_inode" members in the structure
> bhc_io_opts should be set false.
> 
> Fixes: 7a7c43a0c1ecf ("bcachefs: Add bch_io_opts fields for indicating whether the opts came from the inode")
> Reported-by: syzbot+c17ad4b4367b72a853cb@syzkaller.appspotmail.com
> Closes: https://syzkaller.appspot.com/bug?extid=c17ad4b4367b72a853cb
> Signed-off-by: Roxana Nicolescu <nicolescu.roxana@protonmail.com>

Indeed, we're not zero initializing opts prior to passing it in -
applied, thanks.

> ---
>  fs/bcachefs/inode.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c
> index 04ec05206f8c..339b80770f1d 100644
> --- a/fs/bcachefs/inode.c
> +++ b/fs/bcachefs/inode.c
> @@ -1198,6 +1198,7 @@ void bch2_inode_opts_get(struct bch_io_opts *opts, struct bch_fs *c,
>  		opts->_name##_from_inode = true;			\
>  	} else {							\
>  		opts->_name = c->opts._name;				\
> +		opts->_name##_from_inode = false;			\
>  	}
>  	BCH_INODE_OPTS()
>  #undef x
> -- 
> 2.34.1
> 
>