From b0c9c6c49ad8001e2498268f6f9bd51b7d1b407f Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 3 Jan 2003 18:41:22 +0000 Subject: [PATCH] Remove ll_pack.c from being included into basically every module, and make it an exported function from obdclass. This also solves the dependency problem with fsfilt_extN and fsfilt_reiserfs for these functions (b=570). --- lustre/obdclass/fsfilt_reiserfs.c | 1 + lustre/obdclass/statfs_pack.c | 75 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 lustre/obdclass/statfs_pack.c diff --git a/lustre/obdclass/fsfilt_reiserfs.c b/lustre/obdclass/fsfilt_reiserfs.c index f48b8b5..a991e39 100644 --- a/lustre/obdclass/fsfilt_reiserfs.c +++ b/lustre/obdclass/fsfilt_reiserfs.c @@ -40,6 +40,7 @@ #include #include #include +#include #include static void *fsfilt_reiserfs_start(struct inode *inode, int op) diff --git a/lustre/obdclass/statfs_pack.c b/lustre/obdclass/statfs_pack.c new file mode 100644 index 0000000..876d41c --- /dev/null +++ b/lustre/obdclass/statfs_pack.c @@ -0,0 +1,75 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * + * Copyright (C) 2002 Cluster File Systems, Inc. + * + * This file is part of Lustre, http://www.lustre.org. + * + * 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. + * + * 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. + * + * 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. + * + * (Un)packing of OST/MDS requests + * + */ + +#define DEBUG_SUBSYSTEM S_CLASS + +#define EXPORT_SYMTAB +#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) +{ + osfs->os_type = sfs->f_type; + osfs->os_blocks = sfs->f_blocks; + osfs->os_bfree = sfs->f_bfree; + osfs->os_bavail = sfs->f_bavail; + osfs->os_files = sfs->f_files; + osfs->os_ffree = sfs->f_ffree; + osfs->os_bsize = sfs->f_bsize; + osfs->os_namelen = sfs->f_namelen; +} + +void statfs_unpack(struct statfs *sfs, struct obd_statfs *osfs) +{ + sfs->f_type = osfs->os_type; + sfs->f_blocks = osfs->os_blocks; + sfs->f_bfree = osfs->os_bfree; + sfs->f_bavail = osfs->os_bavail; + sfs->f_files = osfs->os_files; + sfs->f_ffree = osfs->os_ffree; + sfs->f_bsize = osfs->os_bsize; + sfs->f_namelen = osfs->os_namelen; +} + +EXPORT_SYMBOL(obd_statfs_pack); +EXPORT_SYMBOL(obd_statfs_unpack); +EXPORT_SYMBOL(statfs_pack); +EXPORT_SYMBOL(statfs_unpack); -- 1.8.3.1