qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] 9pfs: Fix ftruncate-after-unlink
@ 2025-03-10 17:10 Greg Kurz
  2025-03-10 17:10 ` [PATCH 1/4] 9pfs: local : Introduce local_fid_fd() helper Greg Kurz
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Greg Kurz @ 2025-03-10 17:10 UTC (permalink / raw)
  To: qemu-devel; +Cc: Christian Schoenebeck, Greg Kurz

QEMU 9.2 already fixed the long standing limitation of failing fstat() on
unlinked files. This series does something similar for ftruncate().

The following program can be straced inside the guest with a shared fs in
passthrough mode over 9p2000.L.

int main(void)
{
	struct stat st;
	int fd = creat("./foo", 0000);

	ftruncate(fd, 100);
	unlink("./foo");
	ftruncate(fd, 1000);
}

Before :

creat("./foo", 000)                     = 3
ftruncate(3, 100)                       = -1 EACCES (Permission denied)
unlink("./foo")                         = 0
ftruncate(3, 1000)                      = -1 ENOENT (No such file or directory)

After :

creat("./foo", 000)                     = 3
ftruncate(3, 100)                       = 0
unlink("./foo")                         = 0
ftruncate(3, 1000)                      = 0

Christian,

I'm not familiar enough with the latest changes to write a proper test
for this case and I don't have enough cycles to learn. I'm sorry for that
but I guess it will be a lot easier for you and I'll review.

Cheers,

--
Greg

Greg Kurz (4):
  9pfs: local : Introduce local_fid_fd() helper
  9pfs: Don't use file descriptors in core code
  9pfs: Introduce ftruncate file op
  9pfs: Introduce futimens file op

 fsdev/file-op-9p.h |  5 +++++
 hw/9pfs/9p-local.c | 49 ++++++++++++++++++++++++++++++++++------------
 hw/9pfs/9p-synth.c | 22 +++++++++++++++++++++
 hw/9pfs/9p-util.h  |  1 +
 hw/9pfs/9p.c       | 21 +++++++++++++++-----
 hw/9pfs/cofs.c     | 37 ++++++++++++++++++++++++++++++++++
 hw/9pfs/coth.h     |  4 ++++
 7 files changed, 122 insertions(+), 17 deletions(-)

-- 
2.48.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-03-11 14:19 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-10 17:10 [PATCH 0/4] 9pfs: Fix ftruncate-after-unlink Greg Kurz
2025-03-10 17:10 ` [PATCH 1/4] 9pfs: local : Introduce local_fid_fd() helper Greg Kurz
2025-03-11 10:58   ` Christian Schoenebeck
2025-03-11 14:01     ` Greg Kurz
2025-03-10 17:10 ` [PATCH 2/4] 9pfs: Don't use file descriptors in core code Greg Kurz
2025-03-11 11:13   ` Christian Schoenebeck
2025-03-11 14:03     ` Greg Kurz
2025-03-11 14:13       ` Greg Kurz
2025-03-11 14:18       ` Christian Schoenebeck
2025-03-10 17:11 ` [PATCH 3/4] 9pfs: Introduce ftruncate file op Greg Kurz
2025-03-11 11:19   ` Christian Schoenebeck
2025-03-10 17:11 ` [PATCH 4/4] 9pfs: Introduce futimens " Greg Kurz
2025-03-11 11:25   ` Christian Schoenebeck
2025-03-11 10:51 ` [PATCH 0/4] 9pfs: Fix ftruncate-after-unlink Christian Schoenebeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).