Darren Reed <[EMAIL PROTECTED]> wrote:

> >         if (fromvp != tovp) {
> >                 vattr.va_mask = AT_FSID;
> >                 if (error = VOP_GETATTR(fromvp, &vattr, 0, CRED(), NULL))
> >                         goto out;
> >                 fsid = vattr.va_fsid;
> >                 vattr.va_mask = AT_FSID;
> >                 if (error = VOP_GETATTR(tovp, &vattr, 0, CRED(), NULL))
> >                         goto out;
> >                 if (fsid != vattr.va_fsid) {
> >                         error = EXDEV;
> >                         goto out;
> >                 }
> >         }
> >
> > ZFS will never even see such a rename request.
>
> Is this behaviour defined by a standard (such as POSIX or the
> VFS design) or are we free to innovate here and do something
> that allowed such a shortcut as required?

EXDEV means: "cross device link", not cross filesystem link
A ZFS pool acts as the underlying "storage device", so everything that
is within a single ZFS pool may be a candidate for a rename.

POSIX grants that st_dev and st_ino together uniquely identify a file
on a system. As long as neither st_dev nor st_ino change during the 
rename(2) call, POSIX does not prevent this rename operation.

Jörg

-- 
 EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin
       [EMAIL PROTECTED]                (uni)  
       [EMAIL PROTECTED]     (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to