[EMAIL PROTECTED] wrote:

> And "ls" would fail in the same manner.
>
>
> There's one piece of code in "cp" (see usr/src/cmd/mv/mv.c) which 
> short-circuits a readdir-loop:
>
>         while ((dp = readdir(srcdirp)) != NULL) {
>                 int ret;
>
>                 if ((ret = traverse_attrfile(dp, source, target, 1)) == -1)
>                         continue;
>                 else if (ret > 0) {
>                         ++error;
>                         goto out;
>                 }
>
>
> This is strange to me because all other failures result in cp going
> over to the next file.

traverse_attrfile() returns -1 only for:

        if ((dp->d_name[0] == '.' && dp->d_name[1] == '\0') || 
            (dp->d_name[0] == '.' && dp->d_name[1] == '.' && 
            dp->d_name[2] == '\0') || 
            (sysattr_type(dp->d_name) == _RO_SATTR) || 
            (sysattr_type(dp->d_name) == _RW_SATTR)) 
                return (-1); 

So this primarily skips '.' and '..'.

The rest seems to check for DOS extensions in extended attributes.

.... but this is only done to copy attributes and not files.

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