diff mbox series

[v3,06/11] 9p: darwin: Compatibility defn for XATTR_SIZE_MAX

Message ID 20220128005611.87185-7-wwcohen@gmail.com (mailing list archive)
State New, archived
Headers show
Series This is a followup to https://lists.gnu.org/archive/html/qemu-devel/2021-11/msg04325.html, | expand

Commit Message

Will Cohen Jan. 28, 2022, 12:56 a.m. UTC
From: Keno Fischer <keno@juliacomputing.com>

Signed-off-by: Keno Fischer <keno@juliacomputing.com>
Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
[Will Cohen: - Adjust coding style
             - Lower XATTR_SIZE_MAX to 64k]
Signed-off-by: Will Cohen <wwcohen@gmail.com>
---
 hw/9pfs/9p.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Christian Schoenebeck Jan. 28, 2022, 4:02 p.m. UTC | #1
On Freitag, 28. Januar 2022 01:56:06 CET Will Cohen wrote:
> From: Keno Fischer <keno@juliacomputing.com>
> 
> Signed-off-by: Keno Fischer <keno@juliacomputing.com>
> Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
> [Will Cohen: - Adjust coding style
>              - Lower XATTR_SIZE_MAX to 64k]
> Signed-off-by: Will Cohen <wwcohen@gmail.com>
> ---
>  hw/9pfs/9p.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
> index 9b0c057e9c..611ac14c4c 100644
> --- a/hw/9pfs/9p.c
> +++ b/hw/9pfs/9p.c
> @@ -3943,6 +3943,13 @@ out_nofid:
>      v9fs_string_free(&name);
>  }
> 
> +#if defined(CONFIG_DARWIN) && !defined(XATTR_SIZE_MAX)
> +/*
> + * Darwin doesn't seem to define a maximum xattr size in its user
> + * space header, so manually configure it as 64k.
> + */
> +#define XATTR_SIZE_MAX 65536
> +#endif

Yes, but that's not explaining the reason why this is set to 64k. The reason 
is that this a preliminary solution which reflects the limit of Linux guests 
for now, as we don't support macOS guests yet, and not limiting this at all 
would have lead to QEMU crashing on huge g_malloc() calls.

>  static void coroutine_fn v9fs_xattrcreate(void *opaque)
>  {
>      int flags, rflags = 0;
diff mbox series

Patch

diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 9b0c057e9c..611ac14c4c 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -3943,6 +3943,13 @@  out_nofid:
     v9fs_string_free(&name);
 }
 
+#if defined(CONFIG_DARWIN) && !defined(XATTR_SIZE_MAX)
+/*
+ * Darwin doesn't seem to define a maximum xattr size in its user
+ * space header, so manually configure it as 64k.
+ */
+#define XATTR_SIZE_MAX 65536
+#endif
 static void coroutine_fn v9fs_xattrcreate(void *opaque)
 {
     int flags, rflags = 0;