From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1iSa2Z-0006y0-AL for mharc-grub-devel@gnu.org; Thu, 07 Nov 2019 00:09:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56560) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSa2U-0006xq-9o for grub-devel@gnu.org; Thu, 07 Nov 2019 00:09:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSa2S-0003PG-0E for grub-devel@gnu.org; Thu, 07 Nov 2019 00:08:58 -0500 Received: from mail-ed1-x543.google.com ([2a00:1450:4864:20::543]:37188) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iSa2R-0003Nk-KO for grub-devel@gnu.org; Thu, 07 Nov 2019 00:08:55 -0500 Received: by mail-ed1-x543.google.com with SMTP id k14so813571eds.4 for ; Wed, 06 Nov 2019 21:08:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=zTWfb1XD0I7oG34DfgUnstz02ZlB3c0LCayF3Sxc5D8=; b=gDH+nW0g3rKAxw9JShyjfa63MLaS9bE5T0vbva5nxRLv8X4bIDRoA14YS3KeFcwEqR MdwMQKIlt6hxgy7c/ExHe+vrSxkv1Y7t4zmzqYbQAzPaffYcOSI0Qz9yQQIi2AnylGV0 F8RzmiaPudP2qpeK6z+tt3BRuAW5uW71CPJpAWAkmhpTLEEVefrkflNNg36Oz+M2ATsE bsIgS69WsNpsnO6/55fNHvVJJMvk7OsrQnIwjK2FZ5lm6W3kX6EsyrB9UCSIYk0mdYed FiKkcYfVl+1ZTeW3EdTzC2XGRLI9e8bMGaktwt6BrdgpfmyPrKzXnwMliwV06ruIai7N NR7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=zTWfb1XD0I7oG34DfgUnstz02ZlB3c0LCayF3Sxc5D8=; b=nMhtOszKmm5wP6cnAb5DuO/IprE1bsZ7yYSJw8VtdNSUCB597FnseCmY1iiEPgaU9Y Kro1dJgoJv9jW6yqik98gk6IwDT/nznbfgti375ZyUmpT6nyubs6J+AE6RHDtwcI/8tS pmH5wd//+BtJzMgWhhce2u7Y+exaZ/ygAwUags9i/FUv+911seEDfQBKRiZosOSuV/Ab Ljoo9GXMq03VImiNfTI7Iy66B+U9daSUZE/mJjrGBri1Ur50NmLD5FrsjnPboTcDJ9XC +EZAjV0iHHYBP43SFbA2RV+w5qWG5qbaFclRcjpAbdBTs3OrkjLQQkd0cFT6QXzdFrdA /jJA== X-Gm-Message-State: APjAAAV8vpVieKqn2tfimGtoTBpW/FvGhIXuybXBztZbQoxdnf9dQkz0 AD8HR7EwNsf54t6lAxUcDuVcKRWoY0GENmftyPGjWfHC X-Google-Smtp-Source: APXvYqw3iMbOabw3XkjjaxFPQZNynUfkOU1ZPpAHJiJub8Ln6wT0V5MpKkgGunj5365BSi0D+x5C5XWC7QgLWYm7300= X-Received: by 2002:a17:906:a40e:: with SMTP id l14mr1245564ejz.168.1573103333400; Wed, 06 Nov 2019 21:08:53 -0800 (PST) MIME-Version: 1.0 References: <20191105091949.29559-1-mchang@suse.com> <20191107045504.GA4084@mazu> In-Reply-To: <20191107045504.GA4084@mazu> From: "Vladimir 'phcoder' Serbinenko" Date: Wed, 6 Nov 2019 21:08:41 -0800 Message-ID: Subject: Re: [PATCH] btrfs: disable zstd support for i386-pc To: The development of GNU GRUB Content-Type: multipart/alternative; boundary="00000000000061e6830596baa9f5" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::543 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Nov 2019 05:09:01 -0000 --00000000000061e6830596baa9f5 Content-Type: text/plain; charset="UTF-8" On Wed, 6 Nov 2019, 20:55 Michael Chang, wrote: > On Wed, Nov 06, 2019 at 11:15:04AM -0800, Vladimir 'phcoder' Serbinenko > wrote: > > Please don't do it this way. The right solution is to move it to separate > > module and include zstd module when needed. > > I fully agree to work out a proper solution, but before that I think it > is necessary to stop it from spread out going forward, as the running > system upgrading to new version could be affected and the consequence is > fatal - an unbootable system, qualified to be show stopper imho. > We don't do a release right now, so I don't think it's justified. Also increase in size can easily come from a compiler. If an increase in size can make system unbootable on upgrade, I'd rather be fixing this than just pepper over it. > > > Not everybody uses btrfs > > embedded area. I recommend not to use it. Using mbr gap or BBP is the > > recommended way. > > The problem here is existing installation would fail to update to new > grub version if it is using btrfs bootloader area. For new installation > certainly we could recommend them to do so. or btrfs zstd support will > be disabled if using a btrfs bootloader area. > > Thanks, > Michael > > > > > On Tue, 5 Nov 2019, 01:25 Michael Chang, wrote: > > > > > The zstd support in btrfs has dependenciy to zstd module and core.img > > > grows its size significantly to 75KB on my system. The resulted image > > > cannot be installed into btrfs bootloader area in the size of 64KB and > > > eventually fails with following message. > > > > > > /usr/sbin/grub-install: warning: your core.img is unusually large. It > > > won't fit in the embedding area. > > > /usr/sbin/grub-install: error: filesystem `btrfs' doesn't support > > > blocklists. > > > > > > The patch disabled the zstd support of btrfs in pc-bios platform to > > > avoid the regression. The resulting size is 56KB, albeit a bit too > close > > > to the 64KB but works. This is simple workaround until a proper fix > > > landed upstream. > > > > > > Signed-off-by: Michael Chang > > > --- > > > grub-core/fs/btrfs.c | 18 ++++++++++++++++++ > > > 1 file changed, 18 insertions(+) > > > > > > diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c > > > index 48bd3d04a..8f98892d3 100644 > > > --- a/grub-core/fs/btrfs.c > > > +++ b/grub-core/fs/btrfs.c > > > @@ -17,6 +17,7 @@ > > > * along with GRUB. If not, see . > > > */ > > > > > > +#ifndef GRUB_MACHINE_PCBIOS > > > /* > > > * Tell zstd to expose functions that aren't part of the stable API, > which > > > * aren't safe to use when linking against a dynamic library. We > vendor > > > in a > > > @@ -24,6 +25,7 @@ > > > * functions to provide our own allocator, which uses grub_malloc(), > to > > > zstd. > > > */ > > > #define ZSTD_STATIC_LINKING_ONLY > > > +#endif > > > > > > #include > > > #include > > > @@ -35,7 +37,9 @@ > > > #include > > > #include > > > #include > > > +#ifndef GRUB_MACHINE_PCBIOS > > > #include > > > +#endif > > > #include > > > #include > > > #include > > > @@ -56,8 +60,10 @@ GRUB_MOD_LICENSE ("GPLv3+"); > > > #define GRUB_BTRFS_LZO_BLOCK_MAX_CSIZE (GRUB_BTRFS_LZO_BLOCK_SIZE + \ > > > (GRUB_BTRFS_LZO_BLOCK_SIZE / 16) > + 64 > > > + 3) > > > > > > +#ifndef GRUB_MACHINE_PCBIOS > > > #define ZSTD_BTRFS_MAX_WINDOWLOG 17 > > > #define ZSTD_BTRFS_MAX_INPUT (1 << ZSTD_BTRFS_MAX_WINDOWLOG) > > > +#endif > > > > > > typedef grub_uint8_t grub_btrfs_checksum_t[0x20]; > > > typedef grub_uint16_t grub_btrfs_uuid_t[8]; > > > @@ -229,7 +235,9 @@ struct grub_btrfs_extent_data > > > #define GRUB_BTRFS_COMPRESSION_NONE 0 > > > #define GRUB_BTRFS_COMPRESSION_ZLIB 1 > > > #define GRUB_BTRFS_COMPRESSION_LZO 2 > > > +#ifndef GRUB_MACHINE_PCBIOS > > > #define GRUB_BTRFS_COMPRESSION_ZSTD 3 > > > +#endif > > > > > > #define GRUB_BTRFS_OBJECT_ID_CHUNK 0x100 > > > > > > @@ -1229,6 +1237,7 @@ grub_btrfs_read_inode (struct grub_btrfs_data > *data, > > > return grub_btrfs_read_logical (data, elemaddr, inode, sizeof > (*inode), > > > 0); > > > } > > > > > > +#ifndef GRUB_MACHINE_PCBIOS > > > static void *grub_zstd_malloc (void *state __attribute__((unused)), > > > size_t size) > > > { > > > return grub_malloc (size); > > > @@ -1318,6 +1327,7 @@ err: > > > > > > return ret; > > > } > > > +#endif > > > > > > static grub_ssize_t > > > grub_btrfs_lzo_decompress(char *ibuf, grub_size_t isize, grub_off_t > off, > > > @@ -1494,8 +1504,12 @@ grub_btrfs_extent_read (struct grub_btrfs_data > > > *data, > > > > > > if (data->extent->compression != GRUB_BTRFS_COMPRESSION_NONE > > > && data->extent->compression != GRUB_BTRFS_COMPRESSION_ZLIB > > > +#ifndef GRUB_MACHINE_PCBIOS > > > && data->extent->compression != GRUB_BTRFS_COMPRESSION_LZO > > > && data->extent->compression != GRUB_BTRFS_COMPRESSION_ZSTD) > > > +#else > > > + && data->extent->compression != GRUB_BTRFS_COMPRESSION_LZO) > > > +#endif > > > { > > > grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, > > > "compression type 0x%x not supported", > > > @@ -1535,6 +1549,7 @@ grub_btrfs_extent_read (struct grub_btrfs_data > *data, > > > != (grub_ssize_t) csize) > > > return -1; > > > } > > > +#ifndef GRUB_MACHINE_PCBIOS > > > else if (data->extent->compression == > > > GRUB_BTRFS_COMPRESSION_ZSTD) > > > { > > > if (grub_btrfs_zstd_decompress (data->extent->inl, > > > data->extsize - > > > @@ -1544,6 +1559,7 @@ grub_btrfs_extent_read (struct grub_btrfs_data > *data, > > > != (grub_ssize_t) csize) > > > return -1; > > > } > > > +#endif > > > else > > > grub_memcpy (buf, data->extent->inl + extoff, csize); > > > break; > > > @@ -1581,10 +1597,12 @@ grub_btrfs_extent_read (struct grub_btrfs_data > > > *data, > > > ret = grub_btrfs_lzo_decompress (tmp, zsize, extoff > > > + grub_le_to_cpu64 > > > (data->extent->offset), > > > buf, csize); > > > +#ifndef GRUB_MACHINE_PCBIOS > > > else if (data->extent->compression == > > > GRUB_BTRFS_COMPRESSION_ZSTD) > > > ret = grub_btrfs_zstd_decompress (tmp, zsize, extoff > > > + grub_le_to_cpu64 > > > (data->extent->offset), > > > buf, csize); > > > +#endif > > > else > > > ret = -1; > > > > > > -- > > > 2.16.4 > > > > > > > > > _______________________________________________ > > > Grub-devel mailing list > > > Grub-devel@gnu.org > > > https://lists.gnu.org/mailman/listinfo/grub-devel > > > > > > _______________________________________________ > > Grub-devel mailing list > > Grub-devel@gnu.org > > https://lists.gnu.org/mailman/listinfo/grub-devel > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel > --00000000000061e6830596baa9f5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Wed, 6 Nov 2019, 20:55 Michael Chang, <MChang@suse.com> wrote:
On Wed, Nov 06, 2019 at 11:15:04AM -0800, Vladimir = 'phcoder' Serbinenko wrote:
> Please don't do it this way. The right solution is to move it to s= eparate
> module and include zstd module when needed.

I fully agree to work out a proper solution, but before that I think it
is necessary to stop it from spread out going forward, as the running
system upgrading to new version could be affected and the consequence is fatal - an unbootable system, qualified to be show stopper imho.
We don't do a release right now, so= I don't think it's justified. Also increase in size can easily com= e from a compiler. If an increase in size can make system unbootable on upg= rade, I'd rather be fixing this than just pepper over it.

> Not everybody uses btrfs
> embedded area. I recommend not to use it. Using mbr gap or BBP is the<= br> > recommended way.

The problem here is existing installation would fail to update to new
grub version if it is using btrfs bootloader area. For new installation
certainly we could recommend them to do so. or btrfs zstd support will
be disabled if using a btrfs bootloader area.
<= div dir=3D"auto">

Thanks,
Michael

>
> On Tue, 5 Nov 2019, 01:25 Michael Chang, <MChang@suse.com> wrot= e:
>
> > The zstd support in btrfs has dependenciy to zstd module and core= .img
> > grows its size significantly to 75KB on my system. The resulted i= mage
> > cannot be installed into btrfs bootloader area in the size of 64K= B and
> > eventually fails with following message.
> >
> > /usr/sbin/grub-install: warning: your core.img is unusually large= .=C2=A0 It
> > won't fit in the embedding area.
> > /usr/sbin/grub-install: error: filesystem `btrfs' doesn't= support
> > blocklists.
> >
> > The patch disabled the zstd support of btrfs in pc-bios platform = to
> > avoid the regression. The resulting size is 56KB, albeit a bit to= o close
> > to the 64KB but works. This is simple workaround until a proper f= ix
> > landed upstream.
> >
> > Signed-off-by: Michael Chang <mchang@suse.com>
> > ---
> >=C2=A0 grub-core/fs/btrfs.c | 18 ++++++++++++++++++
> >=C2=A0 1 file changed, 18 insertions(+)
> >
> > diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
> > index 48bd3d04a..8f98892d3 100644
> > --- a/grub-core/fs/btrfs.c
> > +++ b/grub-core/fs/btrfs.c
> > @@ -17,6 +17,7 @@
> >=C2=A0 =C2=A0*=C2=A0 along with GRUB.=C2=A0 If not, see <http://www.gnu.org/licenses/>.
> >=C2=A0 =C2=A0*/
> >
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 /*
> >=C2=A0 =C2=A0* Tell zstd to expose functions that aren't part = of the stable API, which
> >=C2=A0 =C2=A0* aren't safe to use when linking against a dynam= ic library. We vendor
> > in a
> > @@ -24,6 +25,7 @@
> >=C2=A0 =C2=A0* functions to provide our own allocator, which uses = grub_malloc(), to
> > zstd.
> >=C2=A0 =C2=A0*/
> >=C2=A0 #define ZSTD_STATIC_LINKING_ONLY
> > +#endif
> >
> >=C2=A0 #include <grub/err.h>
> >=C2=A0 #include <grub/file.h>
> > @@ -35,7 +37,9 @@
> >=C2=A0 #include <grub/lib/crc.h>
> >=C2=A0 #include <grub/deflate.h>
> >=C2=A0 #include <minilzo.h>
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 #include <zstd.h>
> > +#endif
> >=C2=A0 #include <grub/i18n.h>
> >=C2=A0 #include <grub/btrfs.h>
> >=C2=A0 #include <grub/crypto.h>
> > @@ -56,8 +60,10 @@ GRUB_MOD_LICENSE ("GPLv3+");
> >=C2=A0 #define GRUB_BTRFS_LZO_BLOCK_MAX_CSIZE (GRUB_BTRFS_LZO_BLOC= K_SIZE + \
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (GRUB_BT= RFS_LZO_BLOCK_SIZE / 16) + 64
> > + 3)
> >
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 #define ZSTD_BTRFS_MAX_WINDOWLOG 17
> >=C2=A0 #define ZSTD_BTRFS_MAX_INPUT=C2=A0 =C2=A0 =C2=A0(1 <<= ZSTD_BTRFS_MAX_WINDOWLOG)
> > +#endif
> >
> >=C2=A0 typedef grub_uint8_t grub_btrfs_checksum_t[0x20];
> >=C2=A0 typedef grub_uint16_t grub_btrfs_uuid_t[8];
> > @@ -229,7 +235,9 @@ struct grub_btrfs_extent_data
> >=C2=A0 #define GRUB_BTRFS_COMPRESSION_NONE 0
> >=C2=A0 #define GRUB_BTRFS_COMPRESSION_ZLIB 1
> >=C2=A0 #define GRUB_BTRFS_COMPRESSION_LZO=C2=A0 2
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 #define GRUB_BTRFS_COMPRESSION_ZSTD 3
> > +#endif
> >
> >=C2=A0 #define GRUB_BTRFS_OBJECT_ID_CHUNK 0x100
> >
> > @@ -1229,6 +1237,7 @@ grub_btrfs_read_inode (struct grub_btrfs_da= ta *data,
> >=C2=A0 =C2=A0 return grub_btrfs_read_logical (data, elemaddr, inod= e, sizeof (*inode),
> > 0);
> >=C2=A0 }
> >
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 static void *grub_zstd_malloc (void *state __attribute__((u= nused)),
> > size_t size)
> >=C2=A0 {
> >=C2=A0 =C2=A0 return grub_malloc (size);
> > @@ -1318,6 +1327,7 @@ err:
> >
> >=C2=A0 =C2=A0 return ret;
> >=C2=A0 }
> > +#endif
> >
> >=C2=A0 static grub_ssize_t
> >=C2=A0 grub_btrfs_lzo_decompress(char *ibuf, grub_size_t isize, gr= ub_off_t off,
> > @@ -1494,8 +1504,12 @@ grub_btrfs_extent_read (struct grub_btrfs_= data
> > *data,
> >
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (data->extent->compression != =3D GRUB_BTRFS_COMPRESSION_NONE
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& data->exten= t->compression !=3D GRUB_BTRFS_COMPRESSION_ZLIB
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& data->exten= t->compression !=3D GRUB_BTRFS_COMPRESSION_LZO
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& data->exten= t->compression !=3D GRUB_BTRFS_COMPRESSION_ZSTD)
> > +#else
> > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&& data->extent->= ;compression !=3D GRUB_BTRFS_COMPRESSION_LZO)
> > +#endif
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0{
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0grub_error (GRUB_ERR_NOT_= IMPLEMENTED_YET,
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0"compression type 0x%x not supported",
> > @@ -1535,6 +1549,7 @@ grub_btrfs_extent_read (struct grub_btrfs_d= ata *data,
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0!=3D (grub_ssize_t) csize)
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retu= rn -1;
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else if (data->extent-= >compression =3D=3D
> > GRUB_BTRFS_COMPRESSION_ZSTD)
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0{
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (grub_bt= rfs_zstd_decompress (data->extent->inl,
> > data->extsize -
> > @@ -1544,6 +1559,7 @@ grub_btrfs_extent_read (struct grub_btrfs_d= ata *data,
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0!=3D (grub_ssize_t) csize)
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retu= rn -1;
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
> > +#endif
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0grub_memcpy (buf, = data->extent->inl + extoff, csize);
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
> > @@ -1581,10 +1597,12 @@ grub_btrfs_extent_read (struct grub_btrfs= _data
> > *data,
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret = =3D grub_btrfs_lzo_decompress (tmp, zsize, extoff
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+ grub_le= _to_cpu64
> > (data->extent->offset),
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0buf, csiz= e);
> > +#ifndef GRUB_MACHINE_PCBIOS
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else if (da= ta->extent->compression =3D=3D
> > GRUB_BTRFS_COMPRESSION_ZSTD)
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret = =3D grub_btrfs_zstd_decompress (tmp, zsize, extoff
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+ grub_le= _to_cpu64
> > (data->extent->offset),
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0buf, csiz= e);
> > +#endif
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else
> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ret = =3D -1;
> >
> > --
> > 2.16.4
> >
> >
> > _______________________________________________
> > Grub-devel mailing list
> > Grub-devel@gnu.org
> > https://lists.gnu.org/mailman/= listinfo/grub-devel
> >

> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listi= nfo/grub-devel


_______________________________________________
Grub-devel mailing list
= Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/g= rub-devel
--00000000000061e6830596baa9f5--