X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fliblustre%2Flutil.c;h=ba1c35ba2f34e6ed1b265a9f420df54a07c231e5;hb=f3864905b26a90ed3a9bb6f99357264fa40015c4;hp=71a14d912e7d8b8bd6478d14955f0cefce910585;hpb=e59595df1694838b8f32527e0e6806b4730f78d1;p=fs%2Flustre-release.git diff --git a/lustre/liblustre/lutil.c b/lustre/liblustre/lutil.c index 71a14d9..ba1c35b 100644 --- a/lustre/liblustre/lutil.c +++ b/lustre/liblustre/lutil.c @@ -1,78 +1,60 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright (c) 2004 Cluster File Systems, Inc. + * 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 file is part of Lustre, http://www.lustre.org. + * 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). * - * 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 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 * - * 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. + * 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. * - * 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. + * GPL HEADER END + */ +/* + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + * + * Copyright (c) 2012, Intel Corporation. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. */ -#include -#include -#include -#include -#include - +#include +#include #include -#ifdef HAVE_NETDB_H +#include #include -#endif -#ifdef _AIX -#include "syscall_AIX.h" -#else +#include +#include +#include +#include #include -#endif +#include +#include #include -#ifdef HAVE_NETINET_IN_H -#include -#endif -#include -#ifdef HAVE_ARPA_INET_H -#include -#endif -#ifdef HAVE_CATAMOUNT_DATA_H -#include -#endif - +#include +#include +#include +#include +#include #include "lutil.h" - -unsigned int libcfs_subsystem_debug = ~0 - (S_LNET | S_LND); -unsigned int libcfs_debug = 0; - -struct task_struct *current; - -void *inter_module_get(char *arg) -{ - if (!strcmp(arg, "ldlm_cli_cancel_unused")) - return ldlm_cli_cancel_unused; - else if (!strcmp(arg, "ldlm_namespace_cleanup")) - return ldlm_namespace_cleanup; - else if (!strcmp(arg, "ldlm_replay_locks")) - return ldlm_replay_locks; -#ifdef HAVE_QUOTA_SUPPORT - else if (!strcmp(arg, "osc_quota_interface")) - return &osc_quota_interface; - else if (!strcmp(arg, "mdc_quota_interface")) - return &mdc_quota_interface; - else if (!strcmp(arg, "lov_quota_interface")) - return &lov_quota_interface; -#endif - else - return NULL; -} +struct task_struct *current; /* * random number generator stuff @@ -113,7 +95,8 @@ void liblustre_init_random() if (_rand_dev_fd >= 0) { if (syscall(SYS_read, _rand_dev_fd, &seed, sizeof(seed)) == sizeof(seed)) { - ll_srand(seed[0], seed[1]); + cfs_srand(seed[0], seed[1]); + syscall(SYS_close, _rand_dev_fd); return; } syscall(SYS_close, _rand_dev_fd); @@ -126,7 +109,7 @@ void liblustre_init_random() seed[0] = _my_pnid; #endif gettimeofday(&tv, NULL); - ll_srand(tv.tv_sec ^ __swab32(seed[0]), tv.tv_usec ^__swab32(getpid())); + cfs_srand(tv.tv_sec ^ __swab32(seed[0]), tv.tv_usec ^__swab32(getpid())); } static void init_capability(__u32 *res) @@ -194,7 +177,6 @@ int liblustre_init_current(char *comm) current->gid = getgid(); current->fsuid = geteuid(); current->fsgid = getegid(); - memset(¤t->pending, 0, sizeof(current->pending)); current->max_groups = sysconf(_SC_NGROUPS_MAX); current->groups = malloc(sizeof(gid_t) * current->max_groups); @@ -213,6 +195,34 @@ int liblustre_init_current(char *comm) return 0; } +void cfs_cap_raise(cfs_cap_t cap) +{ + current->cap_effective |= (1 << cap); +} + +void cfs_cap_lower(cfs_cap_t cap) +{ + current->cap_effective &= ~(1 << cap); +} + +int cfs_cap_raised(cfs_cap_t cap) +{ + return current->cap_effective & (1 << cap); +} + +cfs_cap_t cfs_curproc_cap_pack(void) { + return current->cap_effective; +} + +void cfs_curproc_cap_unpack(cfs_cap_t cap) { + current->cap_effective = cap; +} + +int cfs_capable(cfs_cap_t cap) +{ + return cfs_cap_raised(cap); +} + int init_lib_portals() { int rc;