The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/tests/zfs-tests/cmd/rename_dir.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * CDDL HEADER START
    3  *
    4  * The contents of this file are subject to the terms of the
    5  * Common Development and Distribution License (the "License").
    6  * You may not use this file except in compliance with the License.
    7  *
    8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9  * or https://opensource.org/licenses/CDDL-1.0.
   10  * See the License for the specific language governing permissions
   11  * and limitations under the License.
   12  *
   13  * When distributing Covered Code, include this CDDL HEADER in each
   14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15  * If applicable, add the following below this CDDL HEADER, with the
   16  * fields enclosed by brackets "[]" replaced with your own identifying
   17  * information: Portions Copyright [yyyy] [name of copyright owner]
   18  *
   19  * CDDL HEADER END
   20  */
   21 
   22 /*
   23  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
   24  * Use is subject to license terms.
   25  */
   26 
   27 /*
   28  * Copyright (c) 2012 by Delphix. All rights reserved.
   29  */
   30 
   31 /*
   32  * Assertion:
   33  * Create two directory trees in zfs filesystem, and rename
   34  * directory across the directory structure. ZFS can handle
   35  * the race situation.
   36  */
   37 
   38 /*
   39  * Need to create the following directory structures before
   40  * running this program:
   41  *
   42  * mkdir -p 1/2/3/4/5 a/b/c/d/e
   43  */
   44 
   45 
   46 #include <stdlib.h>
   47 #include <unistd.h>
   48 #include <stdio.h>
   49 
   50 int
   51 main(void)
   52 {
   53         int i = 1;
   54 
   55         switch (fork()) {
   56         case -1:
   57                 perror("fork");
   58                 exit(1);
   59                 break;
   60 
   61         case 0:
   62                 while (i > 0) {
   63                         int c_count = 0;
   64                         if (rename("a/b/c", "1/2/3/c") == 0)
   65                                 c_count++;
   66                         if (rename("1/2/3/c", "a/b/c") == 0)
   67                                 c_count++;
   68                         if (c_count)
   69                                 (void) fprintf(stderr, "c_count: %d", c_count);
   70                 }
   71                 _exit(0);
   72 
   73         default:
   74                 while (i > 0) {
   75                         int p_count = 0;
   76                         if (rename("1", "a/b/c/d/e/1") == 0)
   77                                 p_count++;
   78                         if (rename("a/b/c/d/e/1", "1") == 0)
   79                                 p_count++;
   80                         if (p_count)
   81                                 (void) fprintf(stderr, "p_count: %d", p_count);
   82                 }
   83                 return (0);
   84         }
   85 }

Cache object: 6e810e5511e5ea83f4e8dda17146f35c


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.