virtio-9p: fix build on !CONFIG_UTIMENSAT
PATCH v5 1/1 virtio-9p: fix build on !CONFIG_UTIMENSAT
This patch introduce a fallback mechanism for old systems that do not support utimensat(). This fix build failure with following warnings:
hw/virtio-9p-local.c: In function 'local_utimensat':hw/virtio-9p-local.c:479: warning: implicit declaration of function 'utimensat' hw/virtio-9p-local.c:479: warning: nested extern declaration of 'utimensat'
and:
hw/virtio-9p.c: In function 'v9fs_setattr_post_chmod':hw/virtio-9p.c:1410: error: 'UTIME_NOW' undeclared (first use in this function) hw/virtio-9p.c:1410: error: (Each undeclared identifier is reported only once hw/virtio-9p.c:1410: error: for each function it appears in.) hw/virtio-9p.c:1413: error: 'UTIME_OMIT' undeclared (first use in this function) hw/virtio-9p.c: In function 'v9fs_wstat_post_chmod':hw/virtio-9p.c:2905: error: 'UTIME_OMIT' undeclared (first use in this function)
[NOTE: At this time virtio-9p is only user of utimensat(), and is available
only when host is linux and CONFIG_VIRTFS is defined. So there are no similar warning for win32. Please provide a wrapper for win32 in oslib-win32.c if new user really requires it.]
v5:
- Allow fallback on runtime
- Move qemu_utimensat() to oslib-posix.c
- Rebased on latest qemu.git
v4:
- Use tv_now.tv_usec
v3:
- Use better alternative handling for UTIME_NOW/OMIT
- Move qemu_utimensat() to cutils.c
V2:
- Introduce qemu_utimensat()
--- hw/virtio-9p-local.c | 4 ++-- oslib-posix.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ qemu-os-posix.h | 12 ++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-)
hw/virtio-9p-local.c +2 -2
@@ -480,9 +480,9 @@ static int local_chown(FsContext *fs_ctx, const char *path, FsCred *credp) }static int local_utimensat (FsContext *s,const char *path, -const struct timespec *buf) +const struct timespec *buf) { -return utimensat (AT_FDCWD ,rpath (s, path), buf,AT_SYMLINK_NOFOLLOW ); +return qemu_utimensat (AT_FDCWD ,rpath (s, path), buf,AT_SYMLINK_NOFOLLOW ); }static int local_remove (FsContext *ctx,const char *path)
oslib-posix.c +48 -0
51 lines not on this page · raw message
qemu-os-posix.h +12 -0
@@ -39,4 +39,16 @@ void os_setup_post(void);typedef struct timeval qemu_timeval ;#define qemu_gettimeofday (tp) gettimeofday(tp, NULL) +#ifndef CONFIG_UTIMENSAT +#ifndef UTIME_NOW +# define UTIME_NOW ((1l << 30) - 1l) +#endif +#ifndef UTIME_OMIT +# define UTIME_OMIT ((1l << 30) - 2l) +#endif +#endif +typedef struct timespec qemu_timespec ; +int qemu_utimensat (int dirfd,const char *path,const qemu_timespec *times, +int flags); +#endif
Signature · 1 line
1.6.5.2
Quoted 34 lines · Hidetoshi Seto
This patch introduce a fallback mechanism for old systems that do not support
utimensat(). This fix build failure with following warnings:
hw/virtio-9p-local.c: In function 'local_utimensat':hw/virtio-9p-local.c:479: warning: implicit declaration of function 'utimensat'hw/virtio-9p-local.c:479: warning: nested extern declaration of 'utimensat'and:
hw/virtio-9p.c: In function 'v9fs_setattr_post_chmod':hw/virtio-9p.c:1410: error: 'UTIME_NOW' undeclared (first use in this function)hw/virtio-9p.c:1410: error: (Each undeclared identifier is reported only oncehw/virtio-9p.c:1410: error: for each function it appears in.)hw/virtio-9p.c:1413: error: 'UTIME_OMIT' undeclared (first use in this function)hw/virtio-9p.c: In function 'v9fs_wstat_post_chmod':hw/virtio-9p.c:2905: error: 'UTIME_OMIT' undeclared (first use in this function)[NOTE: At this time virtio-9p is only user of
utimensat(), and is available
only when host is linux andCONFIG_VIRTFSis defined. So there are no similar warning for win32. Please provide a wrapper for win32 inoslib-win32.cif new user really requires it.]v5:
- Allow fallback on runtime
- Moveqemu_utimensat()tooslib-posix.c
- Rebased on latest qemu.git
v4:
- Use tv_now.tv_usec
v3:
- Use better alternative handling for UTIME_NOW/OMIT
- Moveqemu_utimensat()tocutils.c
V2:
- Introduceqemu_utimensat()
Quoted 8 lines
Acked-by Chris Wright <[email protected]>Acked-by M. Mohan Kumar <[email protected]>Signed-off-by Hidetoshi Seto <[email protected]>--- hw/virtio-9p-local.c | 4 ++-- oslib-posix.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ qemu-os-posix.h | 12 ++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-)
Hi Hidetoshi,
This looks good to me!
Cheers,
Jes
Ping.
Maintainers, please tell me if still something is required for this patch before applying it.
Thanks,
H.Seto
Quoted 52 lines · Jes Sorensen
Quoted 34 lines · Hidetoshi Seto
This patch introduce a fallback mechanism for old systems that do not support
utimensat(). This fix build failure with following warnings:
hw/virtio-9p-local.c: In function 'local_utimensat':hw/virtio-9p-local.c:479: warning: implicit declaration of function 'utimensat'hw/virtio-9p-local.c:479: warning: nested extern declaration of 'utimensat'and:
hw/virtio-9p.c: In function 'v9fs_setattr_post_chmod':hw/virtio-9p.c:1410: error: 'UTIME_NOW' undeclared (first use in this function)hw/virtio-9p.c:1410: error: (Each undeclared identifier is reported only oncehw/virtio-9p.c:1410: error: for each function it appears in.)hw/virtio-9p.c:1413: error: 'UTIME_OMIT' undeclared (first use in this function)hw/virtio-9p.c: In function 'v9fs_wstat_post_chmod':hw/virtio-9p.c:2905: error: 'UTIME_OMIT' undeclared (first use in this function)[NOTE: At this time virtio-9p is only user of
utimensat(), and is available
only when host is linux andCONFIG_VIRTFSis defined. So there are no similar warning for win32. Please provide a wrapper for win32 inoslib-win32.cif new user really requires it.]v5:
- Allow fallback on runtime
- Moveqemu_utimensat()tooslib-posix.c
- Rebased on latest qemu.git
v4:
- Use tv_now.tv_usec
v3:
- Use better alternative handling for UTIME_NOW/OMIT
- Moveqemu_utimensat()tocutils.c
V2:
- Introduceqemu_utimensat()Quoted 8 lines
Acked-by Chris Wright <[email protected]>Acked-by M. Mohan Kumar <[email protected]>Signed-off-by Hidetoshi Seto <[email protected]>--- hw/virtio-9p-local.c | 4 ++-- oslib-posix.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ qemu-os-posix.h | 12 ++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-)Hi Hidetoshi,
This looks good to me!
Acked-by Jes Sorensen <[email protected]>Cheers,
Jes
Quoted 4 lines · Hidetoshi Seto
Ping.
Maintainers, please tell me if still something is required for this patch before applying it.
With Jes's Ack it should be good to go.
I will included it in my next pull request to Anthony..and during that time if I see any issues I will let you know. Thanks for working on it.
JV.
Quoted 60 lines
Thanks,
H.SetoQuoted 52 lines · Jes Sorensen
Quoted 34 lines · Hidetoshi Seto
This patch introduce a fallback mechanism for old systems that do not support
utimensat(). This fix build failure with following warnings:
hw/virtio-9p-local.c: In function 'local_utimensat':hw/virtio-9p-local.c:479: warning: implicit declaration of function 'utimensat'hw/virtio-9p-local.c:479: warning: nested extern declaration of 'utimensat'and:
hw/virtio-9p.c: In function 'v9fs_setattr_post_chmod':hw/virtio-9p.c:1410: error: 'UTIME_NOW' undeclared (first use in this function)hw/virtio-9p.c:1410: error: (Each undeclared identifier is reported only oncehw/virtio-9p.c:1410: error: for each function it appears in.)hw/virtio-9p.c:1413: error: 'UTIME_OMIT' undeclared (first use in this function)hw/virtio-9p.c: In function 'v9fs_wstat_post_chmod':hw/virtio-9p.c:2905: error: 'UTIME_OMIT' undeclared (first use in this function)[NOTE: At this time virtio-9p is only user of
utimensat(), and is available
only when host is linux andCONFIG_VIRTFSis defined. So there are no similar warning for win32. Please provide a wrapper for win32 inoslib-win32.cif new user really requires it.]v5:
- Allow fallback on runtime
- Moveqemu_utimensat()tooslib-posix.c
- Rebased on latest qemu.git
v4:
- Use tv_now.tv_usec
v3:
- Use better alternative handling for UTIME_NOW/OMIT
- Moveqemu_utimensat()tocutils.c
V2:
- Introduceqemu_utimensat()Quoted 8 lines
Acked-by Chris Wright <[email protected]>Acked-by M. Mohan Kumar <[email protected]>Signed-off-by Hidetoshi Seto <[email protected]>--- hw/virtio-9p-local.c | 4 ++-- oslib-posix.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ qemu-os-posix.h | 12 ++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-)Hi Hidetoshi,
This looks good to me!
Acked-by Jes Sorensen <[email protected]>Cheers,
Jes