UKERNEL: add uafs_statvfs
authorAndrew Deason <adeason@sinenomine.net>
Thu, 8 Apr 2010 19:49:53 +0000 (14:49 -0500)
committerDerrick Brashear <shadow@dementia.org>
Fri, 9 Apr 2010 18:50:07 +0000 (11:50 -0700)
Change-Id: Iedd7882f4a57cd89d145f1c61c5f85181187db03
Reviewed-on: http://gerrit.openafs.org/1716
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/UKERNEL/afs_usrops.c
src/afs/UKERNEL/afs_usrops.h
src/afs/UKERNEL/osi_vfsops.c

index 4f1edc3..d52655b 100644 (file)
@@ -1919,6 +1919,25 @@ uafs_Init(char *rn, char *mountDirParam, char *confDirParam,
     return;
 }
 
+int
+uafs_statvfs(struct statvfs *buf)
+{
+    int rc;
+
+    AFS_GLOCK();
+
+    rc = afs_statvfs(&afs_RootVfs, buf);
+
+    AFS_GUNLOCK();
+
+    if (rc) {
+       errno = rc;
+       return -1;
+    }
+
+    return 0;
+}
+
 void
 uafs_Shutdown(void)
 {
index 7fc68f8..9be728f 100644 (file)
@@ -151,5 +151,6 @@ extern int uafs_RPCStatsEnablePeer(void);
 extern int uafs_RPCStatsDisablePeer(void);
 extern int uafs_IsRoot(char *path);
 extern int uafs_statmountpoint_r(char *path);
+extern int uafs_statvfs(struct statvfs *buf);
 
 #endif /* __AFS_USROPS_H__ */
index 0b2463c..7ffa4da 100644 (file)
@@ -120,6 +120,21 @@ afs_statfs(register struct vfs *afsp, struct statfs *abp)
 }
 
 int
+afs_statvfs(struct vfs *afsp, struct statvfs *abp)
+{
+    AFS_STATCNT(afs_statfs);
+
+    abp->f_frsize = 1024;
+    abp->f_favail = 9000000;
+    abp->f_bsize = afsp->vfs_bsize;
+    abp->f_blocks = abp->f_bfree = abp->f_bavail = abp->f_files =
+      abp->f_ffree = 9000000;
+    abp->f_fsid = (AFS_VFSMAGIC << 16) || AFS_VFSFSID;
+
+    return 0;
+}
+
+int
 afs_mountroot(void)
 {
     AFS_STATCNT(afs_mountroot);