Changeset 30391 in vbox
- Timestamp:
- Jun 23, 2010 1:09:45 PM (14 years ago)
- Location:
- trunk/src/VBox/Additions/solaris/SharedFolders
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c
r29147 r30391 1 1 /** @file 2 2 * VirtualBox File System for Solaris Guests, provider implementation. 3 * Portions contributed by: Ronald. 3 4 */ 4 5 … … 421 422 m |= S_IFREG; 422 423 else if (RTFS_IS_FIFO(info.Attr.fMode)) 423 m |= S_IF DIR;424 m |= S_IFIFO; 424 425 else if (RTFS_IS_DEV_CHAR(info.Attr.fMode)) 425 426 m |= S_IFCHR; … … 451 452 if (info.Attr.fMode & RTFS_UNIX_ISUID) 452 453 m |= S_ISUID; 454 if (info.Attr.fMode & RTFS_UNIX_ISGID) 455 m |= S_ISGID; 456 if (info.Attr.fMode & RTFS_UNIX_ISTXT) 457 m |= S_ISVTX; 453 458 *mode = m; 454 459 return (0); -
trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
r29142 r30391 1 1 /** @file 2 2 * VirtualBox File System for Solaris Guests, vnode implementation. 3 * Portions contributed by: Ronald. 3 4 */ 4 5 … … 243 244 LogFlowFunc(("sffs_destroy(%s)%s\n", node->sf_path, node->sf_is_stale ? " stale": "")); 244 245 if (node->sf_children != 0) 245 panic("sfnode_destroy(%s) has %d children", node->sf_ children);246 panic("sfnode_destroy(%s) has %d children", node->sf_path, node->sf_children); 246 247 if (node->sf_vnode != NULL) 247 248 panic("sfnode_destroy(%s) has active vnode", node->sf_path); … … 260 261 if (parent != NULL) { 261 262 if (parent->sf_children == 0) 262 panic("sfnode_destroy(%s) parent has no child" );263 panic("sfnode_destroy(%s) parent has no child", node->sf_path); 263 264 --parent->sf_children; 264 265 if (parent->sf_children == 0 && … … 727 728 goto done; 728 729 vap->va_mode = mode & MODEMASK; 730 if (S_ISDIR(mode)) 731 vap->va_type = VDIR; 732 else if (S_ISREG(mode)) 733 vap->va_type = VREG; 734 else if (S_ISFIFO(mode)) 735 vap->va_type = VFIFO; 736 else if (S_ISCHR(mode)) 737 vap->va_type = VCHR; 738 else if (S_ISBLK(mode)) 739 vap->va_type = VBLK; 740 else if (S_ISLNK(mode)) 741 vap->va_type = VLNK; 742 else if (S_ISSOCK(mode)) 743 vap->va_type = VSOCK; 729 744 730 745 error = sfprov_get_size(node->sf_sffs->sf_handle, node->sf_path, &x); … … 787 802 return (EINVAL); 788 803 if (uio->uio_loffset >= MAXOFF_T) 789 790 791 792 793 794 804 return (0); 805 if (uio->uio_loffset < 0) 806 return (EINVAL); 807 total = uio->uio_resid; 808 if (total == 0) 809 return (0); 795 810 796 811 mutex_enter(&sffs_lock); … … 867 882 if (vp->v_type != VREG || uiop->uio_loffset < 0) { 868 883 mutex_exit(&sffs_lock); 869 884 return (EINVAL); 870 885 } 871 886 if (limit == RLIM64_INFINITY || limit > MAXOFFSET_T) 872 887 limit = MAXOFFSET_T; 873 888 if (limit > MAXOFF_T) 874 889 limit = MAXOFF_T; 875 890 876 891 if (uiop->uio_loffset >= limit) { … … 889 904 } 890 905 891 892 total = uiop->uio_resid; 893 if (total == 0) { 906 total = uiop->uio_resid; 907 if (total == 0) { 894 908 mutex_exit(&sffs_lock); 895 909 return (0); 896 910 } 897 911 … … 900 914 bytes = MIN(PAGESIZE, uiop->uio_resid); 901 915 if (offset + bytes >= limit) { 902 903 904 905 906 916 if (offset >= limit) { 917 error = EFBIG; 918 break; 919 } 920 bytes = limit - offset; 907 921 } 908 922 error = uiomove(sffs_buffer, bytes, UIO_WRITE, uiop); … … 1408 1422 vn_invalid(vp); 1409 1423 vn_free(vp); 1410 1424 LogFlowFunc((" %s vnode cleared\n", node->sf_path)); 1411 1425 1412 1426 /*
Note:
See TracChangeset
for help on using the changeset viewer.