Support for changes to OS X Mavericks VNOP_SYMLINK() function.
authorKen Hornstein <kenh@cmf.nrl.navy.mil>
Wed, 20 Nov 2013 18:37:52 +0000 (13:37 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Thu, 21 Nov 2013 22:15:27 +0000 (14:15 -0800)
commit3f4c1099b7b2d1467b1f5b701ea2f953fec20dc0
treefd0e045469cae3a301634549022d256ef7a10763
parenta1b5a1d42280753de13094006dcc130fede978a1
Support for changes to OS X Mavericks VNOP_SYMLINK() function.

Add support for an extra argument to afs_symlink() to return the
newly-created symlink vnode if requested (this is needed on OS X
Mavericks).  On OS X Mavericks return the newly-created symlink vnode in
the symlink vnops functions, on all other platforms ignore it.

It turns out that technically OS X has required the symlink to be
created for a while, but code inside of symlink() would call namei() on
the symlink name if the returned vnode point was NULL.  The difference
is that on Mavericks the Manditory Access Control Framework has been
enabled, and that turns on some extra code which unconditionally calls
vnode_mount() on the returned vnode pointer, which ends up causing a
panic

Change-Id: I33b2f51cd10f76689eb9868eb05800ab493087c4
Reviewed-on: http://gerrit.openafs.org/10474
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
13 files changed:
src/afs/AIX/osi_vnodeops.c
src/afs/DARWIN/osi_vnodeops.c
src/afs/FBSD/osi_vnodeops.c
src/afs/HPUX/osi_vnodeops.c
src/afs/LINUX/osi_vnodeops.c
src/afs/LINUX24/osi_vnodeops.c
src/afs/NBSD/osi_vnodeops.c
src/afs/OBSD/osi_vnodeops.c
src/afs/SOLARIS/osi_vnodeops.c
src/afs/UKERNEL/afs_usrops.c
src/afs/UKERNEL/sysincludes.h
src/afs/VNOPS/afs_vnop_symlink.c
src/afs/afs_prototypes.h