@@ -34,8 +34,19 @@ is_aligned() {
set -e
trap 'err $LINENO cleanup' ERR
-region=$($NDCTL list -R -b ACPI.NFIT | jq -r '[.[] | select(.available_size == .size)][0] | .dev')
+find_region()
+{
+ $NDCTL list -R -b ACPI.NFIT | jq -r '[.[] | select(.available_size == .size)][0] | .dev'
+}
+region=$(find_region)
+if [ "x$region" = "xnull" ]; then
+ # this is destructive
+ $NDCTL disable-region -b ACPI.NFIT all
+ $NDCTL init-labels -f -b ACPI.NFIT all
+ $NDCTL enable-region -b ACPI.NFIT all
+fi
+region=$(find_region)
if [ "x$region" = "xnull" ]; then
unset $region
echo "unable to find empty region"
A fresh qemu based system may not have its labels initialized. In this case, align.sh would get skipped because the label-less namespaces would be using all available region capacity. Fix this by initializing labels if a usable region is not found the first time around, and try again. Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> --- test/align.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)