-/* -*- 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) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
- * Copyright (c) 2011 Whamcloud, Inc.
+ *
+ * Copyright (c) 2011, 2012, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
* Author: Pravin Shelar <pravin.shelar@sun.com>
*/
-#ifndef EXPORT_SYMTAB
-# define EXPORT_SYMTAB
-#endif
#define DEBUG_SUBSYSTEM S_FLD
#ifdef __KERNEL__
cfs_proc_dir_entry_t *fld_type_proc_dir = NULL;
-static struct lu_local_obj_desc llod_fld_index = {
- .llod_name = fld_index_name,
- .llod_oid = FLD_INDEX_OID,
- .llod_is_index = 1,
- .llod_feat = &fld_index_features,
-};
-
static int __init fld_mod_init(void)
{
fld_type_proc_dir = lprocfs_register(LUSTRE_FLD_NAME,
if (IS_ERR(fld_type_proc_dir))
return PTR_ERR(fld_type_proc_dir);
- llo_local_obj_register(&llod_fld_index);
-
LU_CONTEXT_KEY_INIT(&fld_thread_key);
lu_context_key_register(&fld_thread_key);
return 0;
static void __exit fld_mod_exit(void)
{
- llo_local_obj_unregister(&llod_fld_index);
lu_context_key_degister(&fld_thread_key);
if (fld_type_proc_dir != NULL && !IS_ERR(fld_type_proc_dir)) {
lprocfs_remove(&fld_type_proc_dir);
ENTRY;
+ if (fld->lsf_no_range_lookup) {
+ /* Stub for underlying FS which can't lookup ranges */
+ return 0;
+ }
+
/* for ldiskfs OSD it's enough to declare operation with any ops
* with DMU we'll probably need to specify exact key/value */
rc = dt_obj->do_index_ops->dio_declare_delete(env, dt_obj, NULL, th);
RETURN(rc);
}
- RETURN(rc);
+ rc = lprocfs_seq_create(fld->lsf_proc_dir, "fldb", 0444,
+ &fld_proc_seq_fops, fld);
+ if (rc) {
+ lprocfs_remove(&fld->lsf_proc_dir);
+ fld->lsf_proc_dir = NULL;
+ }
+
+ RETURN(rc);
}
static void fld_server_proc_fini(struct lu_server_fld *fld)