Message ID | 20230302100321.566715-1-johannes.thumshirn@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] common/rc: don't clear superblock for zoned scratch pools | expand |
On 02/03/2023 18:03, Johannes Thumshirn wrote: > _require_scratch_dev_pool() zeros the first 100 sectors of each device to > clear eventual remains of older filesystems. > > On zoned devices this won't work as a plain dd will end up creating > unaligned write errors failing all subsequent actions on the device. > > For zoned devices it is enough to simply reset the first two zones of the > device to achieve the same result. > > Reviewed-by: David Disseldorp <ddiss@suse.de> > Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com> > Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> > --- > common/rc | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/common/rc b/common/rc > index 654730b21ead..dd0d17959db3 100644 > --- a/common/rc > +++ b/common/rc > @@ -3459,9 +3459,15 @@ _require_scratch_dev_pool() > exit 1 > fi > fi > - # to help better debug when something fails, we remove > - # traces of previous btrfs FS on the dev. > - dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 > + # To help better debug when something fails, we remove > + # traces of previous btrfs FS on the dev. For zoned devices we > + # can't use dd as it'll lead to unaligned writes so simply > + # reset the first two zones. > + if [ "`_zone_type "$i"`" = "none" ]; then > + dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 > + else > + $BLKZONE_PROG reset -c 2 $i > + fi > done > } > Reviewed-by: Anand Jain <anand.jain@oracle.com>
On 07/03/2023 09:44, Anand Jain wrote: > On 02/03/2023 18:03, Johannes Thumshirn wrote: >> _require_scratch_dev_pool() zeros the first 100 sectors of each device to >> clear eventual remains of older filesystems. >> >> On zoned devices this won't work as a plain dd will end up creating >> unaligned write errors failing all subsequent actions on the device. >> >> For zoned devices it is enough to simply reset the first two zones of the >> device to achieve the same result. >> >> Reviewed-by: David Disseldorp <ddiss@suse.de> >> Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com> >> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> >> --- >> common/rc | 12 +++++++++--- >> 1 file changed, 9 insertions(+), 3 deletions(-) >> >> diff --git a/common/rc b/common/rc >> index 654730b21ead..dd0d17959db3 100644 >> --- a/common/rc >> +++ b/common/rc >> @@ -3459,9 +3459,15 @@ _require_scratch_dev_pool() >> exit 1 >> fi >> fi >> - # to help better debug when something fails, we remove >> - # traces of previous btrfs FS on the dev. >> - dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 >> + # To help better debug when something fails, we remove >> + # traces of previous btrfs FS on the dev. For zoned devices we >> + # can't use dd as it'll lead to unaligned writes so simply >> + # reset the first two zones. >> + if [ "`_zone_type "$i"`" = "none" ]; then >> + dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 >> + else >> + $BLKZONE_PROG reset -c 2 $i >> + fi >> done >> } > > Reviewed-by: Anand Jain <anand.jain@oracle.com> Pls Ignore.
diff --git a/common/rc b/common/rc index 654730b21ead..dd0d17959db3 100644 --- a/common/rc +++ b/common/rc @@ -3459,9 +3459,15 @@ _require_scratch_dev_pool() exit 1 fi fi - # to help better debug when something fails, we remove - # traces of previous btrfs FS on the dev. - dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 + # To help better debug when something fails, we remove + # traces of previous btrfs FS on the dev. For zoned devices we + # can't use dd as it'll lead to unaligned writes so simply + # reset the first two zones. + if [ "`_zone_type "$i"`" = "none" ]; then + dd if=/dev/zero of=$i bs=4096 count=100 > /dev/null 2>&1 + else + $BLKZONE_PROG reset -c 2 $i + fi done }