qemu-e2k/hw
Daniel P. Berrange 8af0020544 hw/9pfs: Fix errno value for xattr functions
If there is no operation driver for the xattr type the
functions return '-1' and set errno to '-EOPNOTSUPP'.
When the calling code sets 'ret = -errno' this turns
into a large positive number.

In Linux 3.11, the kernel has switched to using 9p
version 9p2000.L, instead of 9p2000.u, which enables
support for xattr operations. This on its own is harmless,
but for another change which makes it request the xattr
with a name 'security.capability'.

The result is that the guest sees a succesful return
of 95 bytes of data, instead of a failure with errno
set to 95. Since the kernel expects a maximum of 20
bytes for an xattr return this gets translated to the
unexpected errno ERANGE.

This all means that when running a binary off a 9p fs
in 3.11 kernels you get a fun result of:

  # ./date
  sh: ./date: Numerical result out of range

The only workaround is to pass 'version=9p2000.u' when
mounting the 9p fs in the guest, to disable all use of
xattrs.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2013-10-05 13:05:28 +04:00
..
9pfs hw/9pfs: Fix errno value for xattr functions 2013-10-05 13:05:28 +04:00
acpi pc,pci,virtio fixes and cleanups 2013-09-30 17:15:01 -05:00
alpha hw/alpha: Fix compiler warning (integer constant is too large) 2013-10-02 22:55:28 +04:00
arm QOM CPUState refactorings / X86CPU 2013-09-03 12:33:32 -05:00
audio audio: remove CONFIG_MIXEMU configure option 2013-09-24 10:29:34 +02:00
block virtio-blk: do not relay a previous driver's WCE configuration to the current 2013-09-20 19:27:48 +02:00
bt Preparation for usb-bt-dongle conditional build 2013-09-10 11:14:41 +02:00
char sh4: Fix serial line access for Linux kernels later than 3.2 2013-10-02 22:55:28 +04:00
core pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
cpu QOM CPUState refactorings / X86CPU 2013-09-03 12:33:32 -05:00
cris
display qxl: compile only once 2013-09-18 11:13:29 +02:00
dma
gpio
i2c
i386 pc,pci,virtio fixes and cleanups 2013-09-30 17:15:01 -05:00
ide
input
intc
isa
lm32
m68k
microblaze
mips mips_malta: support up to 2GiB RAM 2013-09-09 18:42:22 +02:00
misc
moxie
net pc,pci,virtio fixes and cleanups 2013-09-30 17:15:01 -05:00
nvram
openrisc pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
pci pci: remove explicit check to 64K ioport size 2013-09-15 11:49:51 +03:00
pci-bridge
pci-host pc,pci,virtio fixes and cleanups 2013-09-30 17:15:01 -05:00
ppc QOM CPUState refactorings / X86CPU 2013-09-03 12:33:32 -05:00
s390x s390/eventfacility: allow childs to handle more than 1 event type 2013-09-20 13:55:30 +02:00
scsi lsi: add 53C810 variant 2013-09-16 12:42:40 +02:00
sd
sh4
sparc
sparc64 pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
ssi
timer
tpm
unicore32
usb pci-ohci: Add missing 'break' in ohci_service_td 2013-10-02 22:55:28 +04:00
virtio pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
watchdog
xen
xtensa pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
Makefile.objs