+static struct message*
+generic_statfs(struct file_system *fs, struct message *msg){
+ struct lufs_sbattr *sbattr = (void *)fs->fs_buf;
+
+ TRACE("statfs");
+
+ sbattr->sb_bytes=0;
+ sbattr->sb_bytes_free=0;
+ sbattr->sb_bytes_available=0; /* FIXME: Why -1 by original lufs? */
+ sbattr->sb_files=0; /* FIXME: Why -1 by original lufs? */
+ sbattr->sb_ffree=0; /* FIXME: Why -1 by original lufs? */
+ if(fs->fs_ops->statfs){
+ if(fs->fs_ops->statfs(fs->fs_context, sbattr) < 0){
+ TRACE("statfs failed!");
+ return NULL;
+ }
+ }
+
+ /* lu_makemsg() does not copy its 'data' - use persistent 'fs->fs_buf'! */
+ return lu_makemsg(&fs->fs_msg, PTYPE_OK, (void *)sbattr, sizeof(*sbattr));
+}
+