X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fstatfs_pack.c;h=8e20f850a4fa7e84eaccf3843694b3f64c2ed4bb;hb=eef822668e9c4794fc5f06747e03985518fa1d19;hp=1a5f6fa173febb8065eeac276ffc407ae0fce950;hpb=96ec6856f91f7f9031cfce4273c714d72cfe59ae;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/statfs_pack.c b/lustre/obdclass/statfs_pack.c index 1a5f6fa..8e20f85 100644 --- a/lustre/obdclass/statfs_pack.c +++ b/lustre/obdclass/statfs_pack.c @@ -4,20 +4,23 @@ * Copyright (C) 2002, 2003 Cluster File Systems, Inc. * Author: Andreas Dilger * - * This file is part of Lustre, http://www.lustre.org. + * This file is part of the Lustre file system, http://www.lustre.org + * Lustre is a trademark of Cluster File Systems, Inc. * - * Lustre is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. + * You may have signed or agreed to another license before downloading + * this software. If so, you are bound by the terms and conditions + * of that agreement, and the following does not apply to you. See the + * LICENSE file included with this distribution for more information. * - * Lustre is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * If you did not agree to a different license, then this copy of Lustre + * is open source software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. * - * You should have received a copy of the GNU General Public License - * along with Lustre; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * In either case, Lustre is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * license text for more details. * * (Un)packing of OST/MDS requests * @@ -25,23 +28,21 @@ #define DEBUG_SUBSYSTEM S_CLASS -#define EXPORT_SYMTAB +#ifndef EXPORT_SYMTAB +# define EXPORT_SYMTAB +#endif #ifndef __KERNEL__ #include -#else -#include -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)) -#include -#endif #endif -#include -#include -#include -#include +#include +#include +#include +#include -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; @@ -52,8 +53,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; @@ -64,41 +66,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; - - LASSERT( obd != NULL ); - - spin_lock(&obd->obd_dev_lock); - if (list_empty(&obd->obd_exports)) { - spin_unlock(&obd->obd_dev_lock); - 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); - export = class_export_get(export); - spin_unlock(&obd->obd_dev_lock); - } - conn.cookie = export->exp_handle.h_cookie; - - rc = obd_statfs(&conn, &osfs); - if (!rc) - statfs_unpack(sfs, &osfs); - - if (my_export) - class_unlink_export(my_export); - - class_export_put(export); - RETURN(rc); -} - EXPORT_SYMBOL(statfs_pack); EXPORT_SYMBOL(statfs_unpack); -EXPORT_SYMBOL(obd_self_statfs);