mirror of https://github.com/xemu-project/xemu.git
9p: darwin: Move XATTR_SIZE_MAX->P9_XATTR_SIZE_MAX
Signed-off-by: Keno Fischer <keno@juliacomputing.com> Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com> Because XATTR_SIZE_MAX is not defined on Darwin, create a cross-platform P9_XATTR_SIZE_MAX instead. [Will Cohen: - Adjust coding style - Lower XATTR_SIZE_MAX to 64k - Add explanatory context related to XATTR_SIZE_MAX] [Fabian Franz: - Move XATTR_SIZE_MAX reference from 9p.c to P9_XATTR_SIZE_MAX in 9p.h] Signed-off-by: Will Cohen <wwcohen@gmail.com> Signed-off-by: Fabian Franz <fabianfranz.oss@gmail.com> [Will Cohen: - For P9_XATTR_MAX, ensure that Linux uses XATTR_SIZE_MAX, Darwin uses 64k, and error out for undefined hosts] Signed-off-by: Will Cohen <wwcohen@gmail.com> Message-Id: <20220227223522.91937-7-wwcohen@gmail.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
This commit is contained in:
parent
67a71e3b71
commit
38d7fd68b0
|
@ -3949,7 +3949,7 @@ static void coroutine_fn v9fs_xattrcreate(void *opaque)
|
||||||
rflags |= XATTR_REPLACE;
|
rflags |= XATTR_REPLACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size > XATTR_SIZE_MAX) {
|
if (size > P9_XATTR_SIZE_MAX) {
|
||||||
err = -E2BIG;
|
err = -E2BIG;
|
||||||
goto out_nofid;
|
goto out_nofid;
|
||||||
}
|
}
|
||||||
|
|
18
hw/9pfs/9p.h
18
hw/9pfs/9p.h
|
@ -479,4 +479,22 @@ struct V9fsTransport {
|
||||||
void (*push_and_notify)(V9fsPDU *pdu);
|
void (*push_and_notify)(V9fsPDU *pdu);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(XATTR_SIZE_MAX)
|
||||||
|
/* Linux */
|
||||||
|
#define P9_XATTR_SIZE_MAX XATTR_SIZE_MAX
|
||||||
|
#elif defined(CONFIG_DARWIN)
|
||||||
|
/*
|
||||||
|
* Darwin doesn't seem to define a maximum xattr size in its user
|
||||||
|
* space header, so manually configure it across platforms as 64k.
|
||||||
|
*
|
||||||
|
* Having no limit at all can lead to QEMU crashing during large g_malloc()
|
||||||
|
* calls. Because QEMU does not currently support macOS guests, the below
|
||||||
|
* preliminary solution only works due to its being a reflection of the limit of
|
||||||
|
* Linux guests.
|
||||||
|
*/
|
||||||
|
#define P9_XATTR_SIZE_MAX 65536
|
||||||
|
#else
|
||||||
|
#error Missing definition for P9_XATTR_SIZE_MAX for this host system
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue