slot_map.h (c1f3ee120bb61045b1c0a3ead620d1d65af47130) slot_map.h (8e8a4603b5422c9145880e73b23bc4c2c4de0098)
1/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0:
3 *
4 * slotmap.h
5 *
6 * description here
7 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved.

--- 16 unchanged lines hidden (view full) ---

25
26
27#ifndef SLOTMAP_H
28#define SLOTMAP_H
29
30struct ocfs2_slot_info {
31 spinlock_t si_lock;
32
1/* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0:
3 *
4 * slotmap.h
5 *
6 * description here
7 *
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved.

--- 16 unchanged lines hidden (view full) ---

25
26
27#ifndef SLOTMAP_H
28#define SLOTMAP_H
29
30struct ocfs2_slot_info {
31 spinlock_t si_lock;
32
33 struct inode *si_inode;
33 struct inode *si_inode;
34 struct buffer_head *si_bh;
35 unsigned int si_num_slots;
36 unsigned int si_size;
37 s16 si_global_node_nums[OCFS2_MAX_SLOTS];
38};
39
40int ocfs2_init_slot_info(struct ocfs2_super *osb);
34 struct buffer_head *si_bh;
35 unsigned int si_num_slots;
36 unsigned int si_size;
37 s16 si_global_node_nums[OCFS2_MAX_SLOTS];
38};
39
40int ocfs2_init_slot_info(struct ocfs2_super *osb);
41void ocfs2_free_slot_info(struct ocfs2_slot_info *si);
41void ocfs2_free_slot_info(struct ocfs2_super *osb);
42
43int ocfs2_find_slot(struct ocfs2_super *osb);
44void ocfs2_put_slot(struct ocfs2_super *osb);
45
42
43int ocfs2_find_slot(struct ocfs2_super *osb);
44void ocfs2_put_slot(struct ocfs2_super *osb);
45
46void ocfs2_update_slot_info(struct ocfs2_slot_info *si);
47int ocfs2_update_disk_slots(struct ocfs2_super *osb,
48 struct ocfs2_slot_info *si);
46int ocfs2_refresh_slot_info(struct ocfs2_super *osb);
49
50s16 ocfs2_node_num_to_slot(struct ocfs2_slot_info *si,
51 s16 global);
47
48s16 ocfs2_node_num_to_slot(struct ocfs2_slot_info *si,
49 s16 global);
52void ocfs2_clear_slot(struct ocfs2_slot_info *si,
53 s16 slot_num);
50int ocfs2_clear_slot(struct ocfs2_super *osb, s16 slot_num);
54
55static inline int ocfs2_is_empty_slot(struct ocfs2_slot_info *si,
56 int slot_num)
57{
58 BUG_ON(slot_num == OCFS2_INVALID_SLOT);
59 assert_spin_locked(&si->si_lock);
60
61 return si->si_global_node_nums[slot_num] == OCFS2_INVALID_SLOT;
62}
63
64#endif
51
52static inline int ocfs2_is_empty_slot(struct ocfs2_slot_info *si,
53 int slot_num)
54{
55 BUG_ON(slot_num == OCFS2_INVALID_SLOT);
56 assert_spin_locked(&si->si_lock);
57
58 return si->si_global_node_nums[slot_num] == OCFS2_INVALID_SLOT;
59}
60
61#endif