PERFORCE change 108500 for review

Roman Divacky rdivacky at FreeBSD.org
Thu Oct 26 17:34:12 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=108500

Change 108500 by rdivacky at rdivacky_witten on 2006/10/26 17:33:39

	An attempt to implement linux_ustat. Untested.

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linux/linux_stats.c#3 edit

Differences ...

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_stats.c#3 (text+ko) ====

@@ -468,12 +468,24 @@
 int
 linux_ustat(struct thread *td, struct linux_ustat_args *args)
 {
+        struct mount *mp;
+        struct l_ustat linux_ustat;
+
 #ifdef DEBUG
-	if (ldebug(ustat))
-		printf(ARGS(ustat, "%d, *"), args->dev);
+        if (ldebug(ustat))
+                printf(ARGS(ustat, "%d, *"), args->dev);
 #endif
+        mtx_lock(&mountlist_mtx);
+        TAILQ_FOREACH_REVERSE(mp, &mountlist, mntlist, mnt_list)
+                if (mp->mnt_stat.f_fsid.val[0] == args->dev)
+                        break;
+        mtx_unlock(&mountlist_mtx);
 
-	return (EOPNOTSUPP);
+        bzero(&linux_ustat, sizeof(linux_ustat));
+        linux_ustat.f_tfree = mp->mnt_stat.f_bfree;
+        linux_ustat.f_tinode = mp->mnt_stat.f_ffree;
+
+        return copyout(&linux_ustat, args->ubuf, sizeof(linux_ustat));
 }
 
 #if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))


More information about the p4-projects mailing list