test - Adjust randread to not share file descriptors
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 8 Feb 2012 23:32:52 +0000 (15:32 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 8 Feb 2012 23:32:52 +0000 (15:32 -0800)
* Close and reopen the device when randread fork()s so the physical
  file descriptor is not shared.  The vnode will still be shared.

* Works around a serialization issue when a file descriptor is shared.

test/sysperf/randread.c

index f0ce61b..57ddde1 100644 (file)
@@ -71,6 +71,8 @@ main(int ac, char **av)
 
     for (i = 0; i < nprocs; ++i) {
        if (fork() == 0) {
+           close(fd);
+           fd = open(av[1], O_RDONLY);
            srandomdev();
            for (;;) {
                long pos = (random() % limit) & ~(off_t)(bytes - 1);