-/* -*- 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.
* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2012, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
int (*key_cmp)(const struct iam_leaf *l, const struct iam_key *k);
int (*key_eq)(const struct iam_leaf *l, const struct iam_key *k);
+ int (*rec_eq)(const struct iam_leaf *l, const struct iam_rec *r);
+
int (*key_size)(const struct iam_leaf *l);
/*
* Search leaf @l for a record with key @k or for a place
* Underlying flat file. IO against this object is issued to
* read/write nodes.
*/
- struct inode *ic_object;
+ struct inode *ic_object;
+ /*
+ * BH of root block
+ */
+ struct buffer_head *ic_root_bh;
/*
* container flavor.
*/
- struct iam_descr *ic_descr;
+ struct iam_descr *ic_descr;
/*
* read-write lock protecting index consistency.
*/
- cfs_rw_semaphore_t ic_sem;
+ cfs_rw_semaphore_t ic_sem;
};
/*
u32 *addr;
addr = iam_entry_off(entry, iam_path_descr(p)->id_ikey_size);
- return le32_to_cpu(get_unaligned(addr)) & 0x00ffffff;
+ return le32_to_cpu(get_unaligned(addr));
}
static inline void dx_set_block(struct iam_path *p,
#endif
#define BH_DXLock 25
-#define DX_DEBUG (1)
+#define DX_DEBUG (0)
#if DX_DEBUG
static struct iam_lock_stats {
unsigned dls_bh_lock;