/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- * vim:expandtab:shiftwidth=8:tabstop=8: * * Copyright (c) 2003 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. * */ #ifndef _COMPAT25_H #define _COMPAT25_H #ifdef __KERNEL__ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) && LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69) #error sorry, lustre requires at least 2.5.69 #endif #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) # define PGCACHE_WRLOCK(mapping) write_lock(&mapping->page_lock) # define PGCACHE_WRUNLOCK(mapping) write_unlock(&mapping->page_lock) #define KDEVT_INIT(val) { .value = val } #define LTIME_S(time) (time.tv_sec) #define USERMODEHELPER(path, argv, envp) \ call_usermodehelper(path, argv, envp, 1) #define ll_path_lookup path_lookup #define ll_pgcache_lock(mapping) spin_lock(&mapping->page_lock) #define ll_pgcache_unlock(mapping) spin_unlock(&mapping->page_lock) #else /* 2.4.. */ # define PGCACHE_WRLOCK(mapping) spin_lock(&pagecache_lock) # define PGCACHE_WRUNLOCK(mapping) spin_unlock(&pagecache_lock) /* 2.5 uses hlists for some things, like the d_hash. we'll treat them * as 2.5 and let macros drop back.. */ #define hlist_entry list_entry #define hlist_head list_head #define hlist_node list_head #define HLIST_HEAD LIST_HEAD #define INIT_HLIST_HEAD INIT_LIST_HEAD #define hlist_del_init list_del_init #define hlist_add_head list_add #define hlist_for_each_safe list_for_each_safe #define KDEVT_INIT(val) (val) #define ext3_xattr_set_handle ext3_xattr_set #define try_module_get __MOD_INC_USE_COUNT #define module_put __MOD_DEC_USE_COUNT #define LTIME_S(time) (time) #ifndef CONFIG_RH_2_4_20 #define cpu_online(cpu) (cpu_online_map & (1<= KERNEL_VERSION(2,5,0) # define filemap_fdatasync(mapping) filemap_fdatawrite(mapping) #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) # define TryLockPage(page) TestSetPageLocked(page) #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) # define Page_Uptodate(page) PageUptodate(page) #endif #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) #define rb_node_s rb_node #define rb_root_s rb_root typedef struct rb_root_s rb_root_t; typedef struct rb_node_s rb_node_t; #endif #endif /* __KERNEL__ */ #endif /* _COMPAT25_H */