9pfs: fix removing non-existent POSIX ACL xattr on macOS host
authorChristian Schoenebeck <qemu_oss@crudebyte.com>
Fri, 29 Apr 2022 10:25:22 +0000 (12:25 +0200)
committerChristian Schoenebeck <qemu_oss@crudebyte.com>
Sun, 1 May 2022 12:07:03 +0000 (14:07 +0200)
commit9ea3164611a63e898a979f2da24caa1abd29d906
treec1b5241a93fb3c24c9e5f4bdab3913d7cf9b2e70
parent951fe2f89f46f5d51eead066556edc7369e23915
9pfs: fix removing non-existent POSIX ACL xattr on macOS host

When mapped POSIX ACL is used, we are ignoring errors when trying
to remove a POSIX ACL xattr that does not exist. On Linux hosts we
would get ENODATA in such cases, on macOS hosts however we get
ENOATTR instead.

As we can be sure that ENOATTR is defined as being identical on Linux
hosts (at least by qemu/xattr.h), it is safe to fix this issue by
simply comparing against ENOATTR instead of ENODATA.

This patch fixes e.g. a command on Linux guest like:

  cp --preserve=mode old new

Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Link: https://lore.kernel.org/qemu-devel/2866993.yOYK24bMf6@silver/
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <34f81e9bffd7a3e65fb7aab5b56c107bd0aac960.1651228001.git.qemu_oss@crudebyte.com>
hw/9pfs/9p-posix-acl.c