X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flvfs%2Ffsfilt.c;h=1170bf5b135016fa214441f97403d1b45de9b1d2;hb=b7f949e04bbd4533316f0ca09b4b7d4f1765eca1;hp=6f88917f3d3c125a7c772e3a595b9af5863b9913;hpb=113303973ec9f8484eb2355a1a6ef3c4c7fd6a56;p=fs%2Flustre-release.git diff --git a/lustre/lvfs/fsfilt.c b/lustre/lvfs/fsfilt.c index 6f88917..1170bf5 100644 --- a/lustre/lvfs/fsfilt.c +++ b/lustre/lvfs/fsfilt.c @@ -1,6 +1,37 @@ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program 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 version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + * GPL HEADER END + */ +/* + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. + */ + #define DEBUG_SUBSYSTEM S_FILTER #include @@ -8,18 +39,18 @@ #include #include #include -#include +#include #include -LIST_HEAD(fsfilt_types); +CFS_LIST_HEAD(fsfilt_types); static struct fsfilt_operations *fsfilt_search_type(const char *type) { struct fsfilt_operations *found; - struct list_head *p; + cfs_list_t *p; - list_for_each(p, &fsfilt_types) { - found = list_entry(p, struct fsfilt_operations, fs_list); + cfs_list_for_each(p, &fsfilt_types) { + found = cfs_list_entry(p, struct fsfilt_operations, fs_list); if (!strcmp(found->fs_type, type)) { return found; } @@ -41,30 +72,32 @@ int fsfilt_register_ops(struct fsfilt_operations *fs_ops) } } else { PORTAL_MODULE_USE; - list_add(&fs_ops->fs_list, &fsfilt_types); + cfs_list_add(&fs_ops->fs_list, &fsfilt_types); } /* unlock fsfilt_types list */ return 0; } +EXPORT_SYMBOL(fsfilt_register_ops); void fsfilt_unregister_ops(struct fsfilt_operations *fs_ops) { - struct list_head *p; + cfs_list_t *p; /* lock fsfilt_types list */ - list_for_each(p, &fsfilt_types) { + cfs_list_for_each(p, &fsfilt_types) { struct fsfilt_operations *found; - found = list_entry(p, typeof(*found), fs_list); + found = cfs_list_entry(p, typeof(*found), fs_list); if (found == fs_ops) { - list_del(p); + cfs_list_del(p); PORTAL_MODULE_UNUSE; break; } } /* unlock fsfilt_types list */ } +EXPORT_SYMBOL(fsfilt_unregister_ops); struct fsfilt_operations *fsfilt_get_ops(const char *type) { @@ -78,7 +111,7 @@ struct fsfilt_operations *fsfilt_get_ops(const char *type) snprintf(name, sizeof(name) - 1, "fsfilt_%s", type); name[sizeof(name) - 1] = '\0'; - if (!(rc = request_module(name))) { + if (!(rc = cfs_request_module("%s", name))) { fs_ops = fsfilt_search_type(type); CDEBUG(D_INFO, "Loaded module '%s'\n", name); if (!fs_ops) @@ -91,19 +124,15 @@ struct fsfilt_operations *fsfilt_get_ops(const char *type) /* unlock fsfilt_types list */ } } - try_module_get(fs_ops->fs_owner); + cfs_try_module_get(fs_ops->fs_owner); /* unlock fsfilt_types list */ return fs_ops; } +EXPORT_SYMBOL(fsfilt_get_ops); void fsfilt_put_ops(struct fsfilt_operations *fs_ops) { - module_put(fs_ops->fs_owner); + cfs_module_put(fs_ops->fs_owner); } - - -EXPORT_SYMBOL(fsfilt_register_ops); -EXPORT_SYMBOL(fsfilt_unregister_ops); -EXPORT_SYMBOL(fsfilt_get_ops); EXPORT_SYMBOL(fsfilt_put_ops);