Fix do_mkdir on root directories
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 27 Aug 2015 02:58:15 +0000 (22:58 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 27 Aug 2015 03:01:42 +0000 (23:01 -0400)
commit763c4ba240782e2e95c5dd7a0cff36d1629c4f6a
tree11e057228d59e4f2989347cfb995677eb01a720d
parentcfa5f99625e14f3196df84c363c284863f559a23
Fix do_mkdir on root directories

mkdir / should fail with EEXIST, not ENOENT.  The problem, pointed out
by Kevin, was that the parent check happened before the existence check,
and root directories (also for chroots) do not have parents.

This failure caused things like mkdir -p /foo/bar to fail.

Note that the VFS stack is racy, and concurrent mkdirs will probably
cause a lot of trouble.
kern/src/vfs.c