- int error;
- int len;
- char *kpath;
-
- len = strlen_user((char *)path);
-
- kpath = (char *) kmalloc(len+1, GFP_KERNEL);
- if ( !kpath ) {
- printk(KERN_DEBUG "failed to kmalloc kpath\n");
- return 0;
- }
+ struct kstatfs st;
+ int retval;
+
+ retval = vfs_statfs(sb, &st);
+ if (retval)
+ return retval;
+
+ memset(buf, 0, sizeof(*buf));
+ buf->f_type = st.f_type;
+ buf->f_bsize = st.f_bsize;
+ buf->f_blocks = st.f_blocks;
+ buf->f_bfree = st.f_bfree;
+ buf->f_bavail = st.f_bavail;
+ buf->f_files = st.f_files;
+ buf->f_ffree = st.f_ffree;
+ buf->f_fsid[0] = st.f_fsid.val[0];
+ buf->f_fsid[1] = st.f_fsid.val[1];