Message ID | 20230426115323.9455-1-abelova@astralinux.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: parent bytenr must be aligned to sector size | expand |
On 2023/4/26 19:53, Анастасия Белова wrote: > From: Anastasia Belova <abelova@astralinux.ru> > > Change nodesize to sectorsize in alignment check > in print_extent_item. Change requirement in comment. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: ea57788eb76d ("btrfs: require only sector size alignment for parent eb bytenr") > Signed-off-by: Anastasia Belova <abelova@astralinux.ru> Reviewed-by: Qu Wenruo <wqu@suse.com> A little surprised that a static checker can even find such hidden problem. Thanks, Qu > --- > fs/btrfs/print-tree.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c > index b93c96213304..cee005fb8209 100644 > --- a/fs/btrfs/print-tree.c > +++ b/fs/btrfs/print-tree.c > @@ -152,9 +152,9 @@ static void print_extent_item(struct extent_buffer *eb, int slot, int type) > offset, btrfs_shared_data_ref_count(eb, sref)); > /* > * offset is supposed to be a tree block which > - * must be aligned to nodesize. > + * must be aligned to sectorsize. > */ > - if (!IS_ALIGNED(offset, eb->fs_info->nodesize)) > + if (!IS_ALIGNED(offset, eb->fs_info->sectorsize)) > pr_info( > "\t\t\t(parent %llu not aligned to sectorsize %u)\n", > offset, eb->fs_info->sectorsize);
On Wed, Apr 26, 2023 at 02:53:23PM +0300, Анастасия Белова wrote: > From: Anastasia Belova <abelova@astralinux.ru> > > Change nodesize to sectorsize in alignment check > in print_extent_item. Change requirement in comment. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: ea57788eb76d ("btrfs: require only sector size alignment for parent eb bytenr") > Signed-off-by: Anastasia Belova <abelova@astralinux.ru> Added to misc-next, thanks.
On Wed, Apr 26, 2023 at 08:25:14PM +0800, Qu Wenruo wrote: > > > On 2023/4/26 19:53, Анастасия Белова wrote: > > From: Anastasia Belova <abelova@astralinux.ru> > > > > Change nodesize to sectorsize in alignment check > > in print_extent_item. Change requirement in comment. > > > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > > > Fixes: ea57788eb76d ("btrfs: require only sector size alignment for parent eb bytenr") > > Signed-off-by: Anastasia Belova <abelova@astralinux.ru> > > Reviewed-by: Qu Wenruo <wqu@suse.com> > > A little surprised that a static checker can even find such hidden problem. I've seen in Coverity a fuzzy report like "there are 8 cases that do thing X and this one does not, is it expected?" which is basically just pattern matching but can be caused by copy&paste mistakes.
diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c index b93c96213304..cee005fb8209 100644 --- a/fs/btrfs/print-tree.c +++ b/fs/btrfs/print-tree.c @@ -152,9 +152,9 @@ static void print_extent_item(struct extent_buffer *eb, int slot, int type) offset, btrfs_shared_data_ref_count(eb, sref)); /* * offset is supposed to be a tree block which - * must be aligned to nodesize. + * must be aligned to sectorsize. */ - if (!IS_ALIGNED(offset, eb->fs_info->nodesize)) + if (!IS_ALIGNED(offset, eb->fs_info->sectorsize)) pr_info( "\t\t\t(parent %llu not aligned to sectorsize %u)\n", offset, eb->fs_info->sectorsize);