On Fri, Jul 10, 2009 at 10:18:23AM -0700, Scott Rotondo wrote:
> Darren J Moffat wrote:
> >This looks very cool but I haven't quite got my head around it 
> >completely yet.
> >
> >What happens if open(2) is called with O_NOFOLLOW set on one of these 
> >reparse points ? (Please answer for ZFS local access, NFS and CIFS).
> 
> Since these reparse points are implemented with a special type of 
> symlink, open() with O_NOFOLLOW should fail with such an object.

On the client side a server-side reparse point behaves like a mount
point, very much in the same way as mirror mounts.

Locally (on the server) a reparse point is stored in a symlink, but it
isn't followed, and if it were then it'd behave like a mount, just as on
the client side.

There's nothing quite like following a symlink here, therefore
O_NOFOLLOW shouldn't apply on the client side.

An option to not cross mount-points and/or an option to not trigger
[mirror or referral] mounts might be nice.  E.g., O_XDEV and O_XTRIGGER.

Nico
-- 

Reply via email to