X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fstatfs_pack.c;h=74fbc5b1a034c98952e927e6a41c5f7ba975c5ac;hb=bbdfa1431182a5b0d856695453e1031915913197;hp=1998ba33d84b150b2ea7258487dc6af72ef8a239;hpb=040033cef24c5aca2967daf2da7a862abcd074cf;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/statfs_pack.c b/lustre/obdclass/statfs_pack.c index 1998ba3..74fbc5b 100644 --- a/lustre/obdclass/statfs_pack.c +++ b/lustre/obdclass/statfs_pack.c @@ -25,14 +25,16 @@ #define DEBUG_SUBSYSTEM S_CLASS -#define EXPORT_SYMTAB +#ifndef EXPORT_SYMTAB +# define EXPORT_SYMTAB +#endif #ifndef __KERNEL__ #include -#endif - +#else #include #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) -#include +#include +#endif #endif #include @@ -40,25 +42,9 @@ #include #include -void obd_statfs_pack(struct obd_statfs *tgt, struct obd_statfs *src) -{ - tgt->os_type = HTON__u64(src->os_type); - tgt->os_blocks = HTON__u64(src->os_blocks); - tgt->os_bfree = HTON__u64(src->os_bfree); - tgt->os_bavail = HTON__u64(src->os_bavail); - tgt->os_files = HTON__u64(src->os_files); - tgt->os_ffree = HTON__u64(src->os_ffree); - tgt->os_bsize = HTON__u32(src->os_bsize); - tgt->os_namelen = HTON__u32(src->os_namelen); -} - -void obd_statfs_unpack(struct obd_statfs *tgt, struct obd_statfs *src) -{ - obd_statfs_pack(tgt, src); -} - -void statfs_pack(struct obd_statfs *osfs, struct statfs *sfs) +void statfs_pack(struct obd_statfs *osfs, struct kstatfs *sfs) { + memset(osfs, 0, sizeof(*osfs)); osfs->os_type = sfs->f_type; osfs->os_blocks = sfs->f_blocks; osfs->os_bfree = sfs->f_bfree; @@ -69,8 +55,9 @@ void statfs_pack(struct obd_statfs *osfs, struct statfs *sfs) osfs->os_namelen = sfs->f_namelen; } -void statfs_unpack(struct statfs *sfs, struct obd_statfs *osfs) +void statfs_unpack(struct kstatfs *sfs, struct obd_statfs *osfs) { + memset(sfs, 0, sizeof(*sfs)); sfs->f_type = osfs->os_type; sfs->f_blocks = osfs->os_blocks; sfs->f_bfree = osfs->os_bfree; @@ -81,35 +68,5 @@ void statfs_unpack(struct statfs *sfs, struct obd_statfs *osfs) sfs->f_namelen = osfs->os_namelen; } -int obd_self_statfs(struct obd_device *obd, struct statfs *sfs) -{ - struct lustre_handle conn; - struct obd_export *export, *my_export = NULL; - struct obd_statfs osfs = { 0 }; - int rc; - ENTRY; - - if (list_empty(&obd->obd_exports)) { - export = my_export = class_new_export(obd); - if (export == NULL) - RETURN(-ENOMEM); - } else - export = list_entry(obd->obd_exports.next, typeof(*export), - exp_obd_chain); - conn.addr = (unsigned long)export; - conn.cookie = export->exp_cookie; - - rc = obd_statfs(&conn, &osfs); - if (!rc) - statfs_unpack(sfs, &osfs); - - if (my_export) - class_destroy_export(my_export); - RETURN(rc); -} - -EXPORT_SYMBOL(obd_statfs_pack); -EXPORT_SYMBOL(obd_statfs_unpack); EXPORT_SYMBOL(statfs_pack); EXPORT_SYMBOL(statfs_unpack); -EXPORT_SYMBOL(obd_self_statfs);