diff options
| author | Greg Kurz <groug@kaod.org> | 2025-03-12 16:29:30 +0100 |
|---|---|---|
| committer | Christian Schoenebeck <qemu_oss@crudebyte.com> | 2025-05-05 11:28:29 +0200 |
| commit | 371a269ff8ce561c28e4fa03bb49e4940f990637 (patch) | |
| tree | 42713e4b60379d25f0006ed08760d7926deb6023 /hw/9pfs/9p-local.c | |
| parent | 0c798dd52355f3489b29bba0dfd7df0e24cfa1dd (diff) | |
| download | focaccia-qemu-371a269ff8ce561c28e4fa03bb49e4940f990637.tar.gz focaccia-qemu-371a269ff8ce561c28e4fa03bb49e4940f990637.zip | |
9pfs: Introduce futimens file op
Add an futimens operation to the fs driver and use if when a fid has a valid file descriptor. This is required to support more cases where the client wants to do an action on an unlinked file which it still has an open file decriptor for. Only 9P2000.L was considered. Signed-off-by: Greg Kurz <groug@kaod.org> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Message-Id: <20250312152933.383967-5-groug@kaod.org> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Diffstat (limited to 'hw/9pfs/9p-local.c')
| -rw-r--r-- | hw/9pfs/9p-local.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c index 0b33da8d2a..31e216227c 100644 --- a/hw/9pfs/9p-local.c +++ b/hw/9pfs/9p-local.c @@ -1100,6 +1100,14 @@ out: return ret; } +static int local_futimens(FsContext *s, int fid_type, V9fsFidOpenState *fs, + const struct timespec *times) +{ + int fd = local_fid_fd(fid_type, fs); + + return qemu_futimens(fd, times); +} + static int local_unlinkat_common(FsContext *ctx, int dirfd, const char *name, int flags) { @@ -1626,4 +1634,5 @@ FileOperations local_ops = { .unlinkat = local_unlinkat, .has_valid_file_handle = local_has_valid_file_handle, .ftruncate = local_ftruncate, + .futimens = local_futimens, }; |