X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fost%2Fost_internal.h;h=ff77a522caa3cd38d6eb77a9102ce49dd3177399;hb=ee695bf0762f5dbcb2ac6d96354f8d01ad764903;hp=3407a960229e50a55631fed6d2c6b6fcaaba9fdf;hpb=113303973ec9f8484eb2355a1a6ef3c4c7fd6a56;p=fs%2Flustre-release.git diff --git a/lustre/ost/ost_internal.h b/lustre/ost/ost_internal.h index 3407a96..ff77a52 100644 --- a/lustre/ost/ost_internal.h +++ b/lustre/ost/ost_internal.h @@ -1,21 +1,47 @@ -/* -*- 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. + * + * 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) 2007, 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. */ #ifndef OST_INTERNAL_H #define OST_INTERNAL_H -#ifdef LPROCFS -extern void ost_print_req(void *seq_file, struct ptlrpc_request *req); -#else -# define ost_print_req NULL -#endif +#define OSS_SERVICE_WATCHDOG_FACTOR 2 /* * tunables for per-thread page pool (bug 5137) */ #define OST_THREAD_POOL_SIZE PTLRPC_MAX_BRW_PAGES /* pool size in pages */ -#define OST_THREAD_POOL_GFP GFP_HIGHUSER /* GFP mask for pool pages */ +#define OST_THREAD_POOL_GFP CFS_ALLOC_HIGHUSER /* GFP mask for pool pages */ struct page; struct niobuf_local; @@ -28,11 +54,10 @@ struct ptlrpc_request; */ struct ost_thread_local_cache { /* - * pool of pages and nio buffers used by write-path + * pool of nio buffers used by write-path */ - struct page *page [OST_THREAD_POOL_SIZE]; - struct niobuf_local local [OST_THREAD_POOL_SIZE]; - struct niobuf_remote remote[OST_THREAD_POOL_SIZE]; + struct niobuf_local local[OST_THREAD_POOL_SIZE]; + unsigned int temporary:1; }; struct ost_thread_local_cache *ost_tls(struct ptlrpc_request *r); @@ -40,4 +65,29 @@ struct ost_thread_local_cache *ost_tls(struct ptlrpc_request *r); /* Quota stuff */ extern quota_interface_t *quota_interface; +#ifdef LPROCFS +void lprocfs_ost_init_vars(struct lprocfs_static_vars *lvars); +#else +static void lprocfs_ost_init_vars(struct lprocfs_static_vars *lvars) +{ + memset(lvars, 0, sizeof(*lvars)); +} +#endif + +/* Here "ostid" maybe part of "oa", the return value of "ostid_id()" depends on + * the original "ostid->oi_seq", which maybe changed by the assignment of + * "oa->o_seq = ostid_seq(ostid)", so keep the order of setting "oa->o_id" and + * "oa->o_seq". */ +static inline void obdo_from_ostid(struct obdo *oa, struct ost_id *ostid) +{ + oa->o_id = ostid_id(ostid); + oa->o_seq = ostid_seq(ostid); +} + +static inline void ioobj_from_obdo(struct obd_ioobj *ioobj, struct obdo *oa) +{ + ioobj->ioo_id = oa->o_id; + ioobj->ioo_seq = oa->o_seq; +} + #endif /* OST_INTERNAL_H */