[vbox-dev] [PATCH] alloc-size fix for Solaris (guest) shared folders

Life is hard, and then you die ronald at innovation.ch
Sun Jan 16 10:22:43 GMT 2011


Attached is a simple patch that fixes the reported allocated-size on a
Solaris guest for files in shared folders.

Licensed under MIT/public-domain.


  Cheers,

  Ronald

-------------- next part --------------

Return correct allocated size in getattr.

diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c
index 52da908..d76ba0f 100644
--- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c
+++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c
@@ -541,6 +541,7 @@ sfprov_stat_from_info(sffs_stat_t *stat, SHFLFSOBJINFO *info)
 {
 	sfprov_mode_from_fmode(&stat->sf_mode, info->Attr.fMode);
 	stat->sf_size = info->cbObject;
+	stat->sf_alloc = info->cbAllocated;
 	sfprov_ftime_from_timespec(&stat->sf_atime, &info->AccessTime);
 	sfprov_ftime_from_timespec(&stat->sf_mtime, &info->ModificationTime);
 	sfprov_ftime_from_timespec(&stat->sf_ctime, &info->ChangeTime);
diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h
index e073ddb..7b917d8 100644
--- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h
+++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.h
@@ -101,6 +101,7 @@ extern int sfprov_fsync(sfp_file_t *fp);
 typedef struct sffs_stat {
 	mode_t		sf_mode;
 	off_t		sf_size;
+	off_t		sf_alloc;
 	timestruc_t	sf_atime;
 	timestruc_t	sf_mtime;
 	timestruc_t	sf_ctime;
diff --git a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
index b7c5b44..e5a33d2 100644
--- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
+++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
@@ -884,7 +884,7 @@ sffs_getattr(
 
 	vap->va_size = node->sf_stat.sf_size;
 	vap->va_blksize = 512;
-	vap->va_nblocks = (vap->va_size + 511) / 512;
+	vap->va_nblocks = (node->sf_stat.sf_alloc + 511) / 512;
 
 done:
 	mutex_exit(&sffs_lock);


More information about the vbox-dev mailing list