From 4d15c934342aad596221420e10476b32aabf1a7e Mon Sep 17 00:00:00 2001 From: Erez Zadok Date: Thu, 15 May 2014 11:36:49 -0400 Subject: [PATCH] add mmap-write --- progs/.gitignore | 15 ++++++++++----- progs/Makefile | 2 +- progs/mmap-write.c | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 progs/mmap-write.c diff --git a/progs/.gitignore b/progs/.gitignore index 40b68a0..8a3d8ac 100644 --- a/progs/.gitignore +++ b/progs/.gitignore @@ -1,10 +1,15 @@ +bug418 +chdir-open creat-open -open-unlink flock-copyup fsync -truncate -bug418 -rmdircheckinode -rename +ftruncate-unlink mapper +mapper2 +mmap-write +open-unlink queryfile +rename +rmdir-open +rmdircheckinode +truncate diff --git a/progs/Makefile b/progs/Makefile index 54dedb6..d396ad9 100644 --- a/progs/Makefile +++ b/progs/Makefile @@ -20,7 +20,7 @@ CFLAGS=-g -Wall # -Werror # -lefence MOUNTPOINT=. BINS=open-unlink flock-copyup fsync truncate bug418 rmdircheckinode \ creat-open rename mapper queryfile mapper2 ftruncate-unlink \ - rmdir-open chdir-open + rmdir-open chdir-open mmap-write all: $(BINS) diff --git a/progs/mmap-write.c b/progs/mmap-write.c new file mode 100644 index 0000000..a442726 --- /dev/null +++ b/progs/mmap-write.c @@ -0,0 +1,39 @@ +/* + * mmap-write.c (courtesy Theodore Ts'o ) + */ + +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + int fd; + char *map; + + fd = open(argv[1], O_RDWR|O_CREAT, 0666); + if (fd < 0) { + perror("open"); + exit(1); + } + if (ftruncate(fd, 4096) < 0) { + perror("ftruncate"); + exit(1); + } + map = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); + if (map == MAP_FAILED) { + perror("mmap"); + exit(1); + } + strcpy(map, + "Murphy Magic. The SeCrEt of the UnIvErSe is 43, NOT 42.\n"); + if (msync(map, 4096, MS_SYNC) < 0) { + perror("msync"); + exit(1); + } + exit(0); +} -- 2.43.0