|
Daniel P. Berrange |
52a7a6 |
commit eed968607d656a218712df47a5e0432c21fd6994
|
|
Daniel P. Berrange |
52a7a6 |
Author: Daniel P. Berrange <berrange@redhat.com>
|
|
Daniel P. Berrange |
52a7a6 |
Date: Mon Jan 16 18:11:40 2012 +0000
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
hw/9pfs: Remove O_NOATIME flag from 9pfs open() calls in readonly mode
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
When 2c74c2cb4bedddbfa67628fbd5f9273b4e0e9903 added support for
|
|
Daniel P. Berrange |
52a7a6 |
the 'readonly' flag against 9p filesystems, it also made QEMU
|
|
Daniel P. Berrange |
52a7a6 |
add the O_NOATIME flag as a side-effect.
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
The O_NOATIME flag, however, may only be set by the file owner,
|
|
Daniel P. Berrange |
52a7a6 |
or a user with CAP_FOWNER capability. QEMU cannot assume that
|
|
Daniel P. Berrange |
52a7a6 |
this is the case for filesytems exported to QEMU.
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
eg, run QEMU as non-root, and attempt to pass the host OS
|
|
Daniel P. Berrange |
52a7a6 |
filesystem through to the guest OS with readonly enable.
|
|
Daniel P. Berrange |
52a7a6 |
The result is that the guest OS cannot open any files at
|
|
Daniel P. Berrange |
52a7a6 |
all.
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
If O_NOATIME is really required, it should be optionally
|
|
Daniel P. Berrange |
52a7a6 |
enabled via a separate QEMU command line flag.
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
* hw/9pfs/virtio-9p.c: Remove O_NOATIME
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
Acked-by: M. Mohan Kumar <mohan@in.ibm.com>
|
|
Daniel P. Berrange |
52a7a6 |
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
|
Daniel P. Berrange |
52a7a6 |
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
|
|
Daniel P. Berrange |
52a7a6 |
|
|
Daniel P. Berrange |
52a7a6 |
diff --git a/hw/9pfs/virtio-9p.c b/hw/9pfs/virtio-9p.c
|
|
Daniel P. Berrange |
52a7a6 |
index dfe2025..a72ffc3 100644
|
|
Daniel P. Berrange |
52a7a6 |
--- a/hw/9pfs/virtio-9p.c
|
|
Daniel P. Berrange |
52a7a6 |
+++ b/hw/9pfs/virtio-9p.c
|
|
Daniel P. Berrange |
52a7a6 |
@@ -1391,7 +1391,6 @@ static void v9fs_open(void *opaque)
|
|
Daniel P. Berrange |
52a7a6 |
err = -EROFS;
|
|
Daniel P. Berrange |
52a7a6 |
goto out;
|
|
Daniel P. Berrange |
52a7a6 |
}
|
|
Daniel P. Berrange |
52a7a6 |
- flags |= O_NOATIME;
|
|
Daniel P. Berrange |
52a7a6 |
}
|
|
Daniel P. Berrange |
52a7a6 |
err = v9fs_co_open(pdu, fidp, flags);
|
|
Daniel P. Berrange |
52a7a6 |
if (err < 0) {
|