[Ocfs2-commits] mfasheh commits r2357 - trunk/fs/ocfs2
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Thu Jun 2 13:10:21 CDT 2005
Author: mfasheh
Signed-off-by: zab
Date: 2005-06-02 13:10:20 -0500 (Thu, 02 Jun 2005)
New Revision: 2357
Removed:
trunk/fs/ocfs2/ocfs.h
Modified:
trunk/fs/ocfs2/Makefile
trunk/fs/ocfs2/aio.c
trunk/fs/ocfs2/alloc.c
trunk/fs/ocfs2/aops.c
trunk/fs/ocfs2/buffer_head_io.c
trunk/fs/ocfs2/dcache.c
trunk/fs/ocfs2/dir.c
trunk/fs/ocfs2/dlmglue.c
trunk/fs/ocfs2/dlmglue.h
trunk/fs/ocfs2/extent_map.c
trunk/fs/ocfs2/file.c
trunk/fs/ocfs2/heartbeat.c
trunk/fs/ocfs2/inode.c
trunk/fs/ocfs2/inode.h
trunk/fs/ocfs2/journal.c
trunk/fs/ocfs2/localalloc.c
trunk/fs/ocfs2/mmap.c
trunk/fs/ocfs2/namei.c
trunk/fs/ocfs2/ocfs2.h
trunk/fs/ocfs2/proc.c
trunk/fs/ocfs2/slot_map.c
trunk/fs/ocfs2/suballoc.c
trunk/fs/ocfs2/super.c
trunk/fs/ocfs2/symlink.c
trunk/fs/ocfs2/sysfile.c
trunk/fs/ocfs2/vote.c
Log:
* move the definitions in ocfs.h into ocfs2.h, there's no reason for two
ocfs headers.
* while we're at it, remove some easy typedefs
Signed-off-by: zab
Modified: trunk/fs/ocfs2/Makefile
===================================================================
--- trunk/fs/ocfs2/Makefile 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/Makefile 2005-06-02 18:10:20 UTC (rev 2357)
@@ -60,7 +60,6 @@
HEADERS = \
ocfs2_fs.h \
ocfs1_fs_compat.h \
- ocfs.h \
ocfs2.h \
buffer_head_io.h \
aio.h \
Modified: trunk/fs/ocfs2/aio.c
===================================================================
--- trunk/fs/ocfs2/aio.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/aio.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -33,7 +33,6 @@
#define MLOG_MASK_PREFIX ML_FILE_IO|ML_AIO
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "aio.h"
Modified: trunk/fs/ocfs2/alloc.c
===================================================================
--- trunk/fs/ocfs2/alloc.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/alloc.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -31,7 +31,6 @@
#define MLOG_MASK_PREFIX ML_DISK_ALLOC
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/aops.c
===================================================================
--- trunk/fs/ocfs2/aops.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/aops.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -28,7 +28,6 @@
#define MLOG_MASK_PREFIX ML_FILE_IO
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/buffer_head_io.c
===================================================================
--- trunk/fs/ocfs2/buffer_head_io.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/buffer_head_io.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -30,7 +30,6 @@
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/dcache.c
===================================================================
--- trunk/fs/ocfs2/dcache.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/dcache.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -31,7 +31,7 @@
#define MLOG_MASK_PREFIX ML_NAMEI
#include <cluster/masklog.h>
-#include "ocfs.h"
+#include "ocfs2.h"
#include "alloc.h"
#include "dcache.h"
Modified: trunk/fs/ocfs2/dir.c
===================================================================
--- trunk/fs/ocfs2/dir.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/dir.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -44,7 +44,6 @@
#define MLOG_MASK_PREFIX ML_NAMEI
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/dlmglue.c
===================================================================
--- trunk/fs/ocfs2/dlmglue.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/dlmglue.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -41,7 +41,6 @@
#define MLOG_MASK_PREFIX ML_DLM_GLUE
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
@@ -88,15 +87,15 @@
dlm_status status);
static int ocfs2_do_unblock_meta(struct inode *inode,
int *requeue);
-static int ocfs2_unblock_meta(ocfs2_lock_res *lockres,
+static int ocfs2_unblock_meta(struct ocfs2_lock_res *lockres,
int *requeue);
-static int ocfs2_unblock_data(ocfs2_lock_res *lockres,
+static int ocfs2_unblock_data(struct ocfs2_lock_res *lockres,
int *requeue);
-static int ocfs2_unblock_super(ocfs2_lock_res *lockres,
+static int ocfs2_unblock_super(struct ocfs2_lock_res *lockres,
int *requeue);
-typedef void (ocfs2_convert_worker_t)(ocfs2_lock_res *, int);
+typedef void (ocfs2_convert_worker_t)(struct ocfs2_lock_res *, int);
static int ocfs2_generic_unblock_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int *requeue,
ocfs2_convert_worker_t *worker);
@@ -104,7 +103,7 @@
void (*ast)(void *);
void (*bast)(void *, int);
void (*unlock_ast)(void *, dlm_status);
- int (*unblock)(ocfs2_lock_res *, int *);
+ int (*unblock)(struct ocfs2_lock_res *, int *);
};
static struct ocfs2_lock_res_ops ocfs2_inode_meta_lops = {
@@ -114,7 +113,7 @@
.unblock = ocfs2_unblock_meta,
};
-static void ocfs2_data_convert_worker(ocfs2_lock_res *lockres,
+static void ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres,
int blocking);
static struct ocfs2_lock_res_ops ocfs2_inode_data_lops = {
@@ -131,25 +130,25 @@
.unblock = ocfs2_unblock_super,
};
-static inline int ocfs2_is_inode_lock(ocfs2_lock_res *lockres)
+static inline int ocfs2_is_inode_lock(struct ocfs2_lock_res *lockres)
{
return lockres->l_type == OCFS2_TYPE_META ||
lockres->l_type == OCFS2_TYPE_DATA;
}
-static inline int ocfs2_is_super_lock(ocfs2_lock_res *lockres)
+static inline int ocfs2_is_super_lock(struct ocfs2_lock_res *lockres)
{
return lockres->l_type == OCFS2_TYPE_SUPER;
}
-static inline ocfs2_super *ocfs2_lock_res_super(ocfs2_lock_res *lockres)
+static inline ocfs2_super *ocfs2_lock_res_super(struct ocfs2_lock_res *lockres)
{
OCFS2_ASSERT(ocfs2_is_super_lock(lockres));
return (ocfs2_super *) lockres->l_priv;
}
-static inline struct inode *ocfs2_lock_res_inode(ocfs2_lock_res *lockres)
+static inline struct inode *ocfs2_lock_res_inode(struct ocfs2_lock_res *lockres)
{
OCFS2_ASSERT(ocfs2_is_inode_lock(lockres));
@@ -157,33 +156,33 @@
}
static int ocfs2_lock_create(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level,
int flags);
-static inline int ocfs2_may_continue_on_blocked_lock(ocfs2_lock_res *lockres,
+static inline int ocfs2_may_continue_on_blocked_lock(struct ocfs2_lock_res *lockres,
int wanted);
static int ocfs2_cluster_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level,
int lkm_flags,
ocfs2_lock_callback cb,
unsigned long cb_data);
static void ocfs2_cluster_unlock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level);
-static inline void ocfs2_generic_handle_downconvert_action(ocfs2_lock_res *lockres);
-static inline void ocfs2_generic_handle_convert_action(ocfs2_lock_res *lockres);
-static inline void ocfs2_generic_handle_attach_action(ocfs2_lock_res *lockres);
-static int ocfs2_generic_handle_bast(ocfs2_lock_res *lockres, int level);
+static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres);
+static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres);
+static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres);
+static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, int level);
static inline void ocfs2_handle_meta_convert_action(struct inode *inode,
- ocfs2_lock_res *lockres);
+ struct ocfs2_lock_res *lockres);
static void ocfs2_inc_inode_seq(ocfs2_super *osb,
struct inode *inode);
static void ocfs2_schedule_blocked_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres);
+ struct ocfs2_lock_res *lockres);
static void ocfs2_schedule_blocked_inode_lock(struct inode *inode,
- ocfs2_lock_res *lockres);
-static inline void ocfs2_recover_from_dlm_error(ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres);
+static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres,
int convert);
#define ocfs2_log_dlm_error(_func, _stat, _lockres) do { \
mlog(ML_ERROR, "Dlm error \"%s\" while calling %s on " \
@@ -191,32 +190,32 @@
_lockres->l_name, dlm_errmsg(_stat)); \
} while (0)
static void ocfs2_vote_on_unlock(ocfs2_super *osb,
- ocfs2_lock_res *lockres);
+ struct ocfs2_lock_res *lockres);
/* Called after we refresh our inode, only has any effect if we have
* an EX lock. This populates the LVB with the initial values for our
* change set. */
static void ocfs2_reset_meta_lvb_values(struct inode *inode);
static void __ocfs2_stuff_meta_lvb(struct inode *inode);
static void ocfs2_refresh_inode_from_lvb(struct inode *inode);
-static void __ocfs2_lvb_on_downconvert(ocfs2_lock_res *lockres,
+static void __ocfs2_lvb_on_downconvert(struct ocfs2_lock_res *lockres,
int new_level);
static int ocfs2_meta_lock_update(struct inode *inode,
struct buffer_head **bh);
static void ocfs2_drop_super_lock(ocfs2_super *osb);
static inline int ocfs2_highest_compat_lock_level(int level);
static int __ocfs2_downconvert_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int new_level,
int lvb);
static int __ocfs2_cancel_convert(ocfs2_super *osb,
- ocfs2_lock_res *lockres);
+ struct ocfs2_lock_res *lockres);
static inline int ocfs2_can_downconvert_meta_lock(struct inode *inode,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int new_level);
-static inline int ocfs2_lvb_is_trustable(ocfs2_lock_res *lockres)
+static inline int ocfs2_lvb_is_trustable(struct ocfs2_lock_res *lockres)
{
- ocfs2_lvb *lvb = (ocfs2_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lvb *lvb = (struct ocfs2_lvb *) lockres->l_lksb.lvb;
unsigned int lvb_seq;
int ret = 0;
@@ -235,9 +234,9 @@
return ret;
}
-static inline void ocfs2_set_local_seq_from_lvb(ocfs2_lock_res *lockres)
+static inline void ocfs2_set_local_seq_from_lvb(struct ocfs2_lock_res *lockres)
{
- ocfs2_lvb *lvb = (ocfs2_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lvb *lvb = (struct ocfs2_lvb *) lockres->l_lksb.lvb;
unsigned int lvb_seq;
mlog_entry_void();
@@ -254,10 +253,10 @@
}
/* fill in new values as we add them to the lvb. */
-static inline void ocfs2_meta_lvb_get_trunc_clusters(ocfs2_lock_res *lockres,
+static inline void ocfs2_meta_lvb_get_trunc_clusters(struct ocfs2_lock_res *lockres,
unsigned int *trunc_clusters)
{
- ocfs2_meta_lvb *lvb;
+ struct ocfs2_meta_lvb *lvb;
mlog_entry_void();
@@ -266,7 +265,7 @@
spin_lock(&lockres->l_lock);
OCFS2_ASSERT(lockres->l_level > LKM_NLMODE);
- lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+ lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
if (trunc_clusters)
*trunc_clusters = be32_to_cpu(lvb->lvb_trunc_clusters);
@@ -308,7 +307,7 @@
return len;
}
-static void ocfs2_lock_res_init_common(ocfs2_lock_res *res,
+static void ocfs2_lock_res_init_common(struct ocfs2_lock_res *res,
enum ocfs2_lock_type type,
struct ocfs2_lock_res_ops *ops,
void *priv)
@@ -326,17 +325,17 @@
res->l_flags = OCFS2_LOCK_INITIALIZED;
}
-void ocfs2_lock_res_init_once(ocfs2_lock_res *res)
+void ocfs2_lock_res_init_once(struct ocfs2_lock_res *res)
{
/* This also clears out the lock status block */
- memset(res, 0, sizeof(ocfs2_lock_res));
+ memset(res, 0, sizeof(struct ocfs2_lock_res));
spin_lock_init(&res->l_lock);
init_waitqueue_head(&res->l_event);
INIT_LIST_HEAD(&res->l_blocked_list);
INIT_LIST_HEAD(&res->l_flag_cb_list);
}
-int ocfs2_inode_lock_res_init(ocfs2_lock_res *res,
+int ocfs2_inode_lock_res_init(struct ocfs2_lock_res *res,
enum ocfs2_lock_type type,
struct inode *inode)
{
@@ -369,7 +368,7 @@
return status;
}
-int ocfs2_super_lock_res_init(ocfs2_lock_res *res,
+int ocfs2_super_lock_res_init(struct ocfs2_lock_res *res,
ocfs2_super *osb)
{
enum ocfs2_lock_type type = OCFS2_TYPE_SUPER;
@@ -397,7 +396,7 @@
return status;
}
-void ocfs2_lock_res_free(ocfs2_lock_res *res)
+void ocfs2_lock_res_free(struct ocfs2_lock_res *res)
{
mlog_entry_void();
@@ -432,7 +431,7 @@
mlog_exit_void();
}
-static inline void ocfs2_inc_holders(ocfs2_lock_res *lockres,
+static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres,
int level)
{
mlog_entry_void();
@@ -453,7 +452,7 @@
mlog_exit_void();
}
-static inline void ocfs2_dec_holders(ocfs2_lock_res *lockres,
+static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres,
int level)
{
mlog_entry_void();
@@ -490,7 +489,7 @@
}
/* XXX must be called with lockres->l_lock held */
-static void lockres_set_flags(ocfs2_lock_res *lockres, unsigned long newflags)
+static void lockres_set_flags(struct ocfs2_lock_res *lockres, unsigned long newflags)
{
struct list_head *pos, *tmp;
struct ocfs2_lockres_flag_callback *fcb;
@@ -513,16 +512,16 @@
}
}
-static void lockres_or_flags(ocfs2_lock_res *lockres, unsigned long or)
+static void lockres_or_flags(struct ocfs2_lock_res *lockres, unsigned long or)
{
lockres_set_flags(lockres, lockres->l_flags | or);
}
-static void lockres_clear_flags(ocfs2_lock_res *lockres, unsigned long clear)
+static void lockres_clear_flags(struct ocfs2_lock_res *lockres, unsigned long clear)
{
lockres_set_flags(lockres, lockres->l_flags & ~clear);
}
-static inline void ocfs2_generic_handle_downconvert_action(ocfs2_lock_res *lockres)
+static inline void ocfs2_generic_handle_downconvert_action(struct ocfs2_lock_res *lockres)
{
mlog_entry_void();
@@ -573,7 +572,7 @@
mlog_exit_void();
}
-static inline void ocfs2_generic_handle_convert_action(ocfs2_lock_res *lockres)
+static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres)
{
mlog_entry_void();
@@ -593,7 +592,7 @@
}
static inline void ocfs2_handle_meta_convert_action(struct inode *inode,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
ocfs2_super *osb = OCFS2_SB(inode->i_sb);
@@ -607,7 +606,7 @@
mlog_exit_void();
}
-static inline void ocfs2_generic_handle_attach_action(ocfs2_lock_res *lockres)
+static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres)
{
mlog_entry_void();
@@ -627,7 +626,7 @@
static void ocfs2_inode_ast_func(void *opaque)
{
- ocfs2_lock_res *lockres = opaque;
+ struct ocfs2_lock_res *lockres = opaque;
struct inode *inode;
ocfs2_super *osb;
dlm_lockstatus *lksb;
@@ -692,7 +691,8 @@
mlog_exit_void();
}
-static int ocfs2_generic_handle_bast(ocfs2_lock_res *lockres, int level)
+static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres,
+ int level)
{
int needs_downconvert = 0;
mlog_entry_void();
@@ -719,7 +719,7 @@
static void ocfs2_inode_bast_func(void *opaque, int level)
{
- ocfs2_lock_res *lockres = opaque;
+ struct ocfs2_lock_res *lockres = opaque;
struct inode *inode;
ocfs2_super *osb;
int needs_downconvert;
@@ -755,7 +755,7 @@
static void ocfs2_super_ast_func(void *opaque)
{
- ocfs2_lock_res *lockres = opaque;
+ struct ocfs2_lock_res *lockres = opaque;
dlm_lockstatus *lksb;
mlog_entry_void();
@@ -796,7 +796,7 @@
static void ocfs2_super_bast_func(void *opaque, int level)
{
- ocfs2_lock_res *lockres = opaque;
+ struct ocfs2_lock_res *lockres = opaque;
ocfs2_super *osb;
int needs_downconvert;
@@ -817,7 +817,7 @@
mlog_exit_void();
}
-static inline void ocfs2_recover_from_dlm_error(ocfs2_lock_res *lockres,
+static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres,
int convert)
{
mlog_entry_void();
@@ -838,7 +838,7 @@
* to do the right thing in that case.
*/
static int ocfs2_lock_create(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level,
int flags)
{
@@ -883,7 +883,7 @@
return ret;
}
-static inline int ocfs2_check_wait_flag(ocfs2_lock_res *lockres,
+static inline int ocfs2_check_wait_flag(struct ocfs2_lock_res *lockres,
int flag)
{
int ret;
@@ -895,28 +895,28 @@
return ret;
}
-static inline void ocfs2_wait_on_busy_lock(ocfs2_lock_res *lockres)
+static inline void ocfs2_wait_on_busy_lock(struct ocfs2_lock_res *lockres)
{
wait_event(lockres->l_event,
!ocfs2_check_wait_flag(lockres, OCFS2_LOCK_BUSY));
}
-static inline void ocfs2_wait_on_blocked_lock(ocfs2_lock_res *lockres)
+static inline void ocfs2_wait_on_blocked_lock(struct ocfs2_lock_res *lockres)
{
wait_event(lockres->l_event,
!ocfs2_check_wait_flag(lockres, OCFS2_LOCK_BLOCKED));
}
-static inline void ocfs2_wait_on_refreshing_lock(ocfs2_lock_res *lockres)
+static inline void ocfs2_wait_on_refreshing_lock(struct ocfs2_lock_res *lockres)
{
wait_event(lockres->l_event,
!ocfs2_check_wait_flag(lockres, OCFS2_LOCK_REFRESHING));
}
-static void lockres_add_flag_callback(ocfs2_lock_res *lockres,
+static void lockres_add_flag_callback(struct ocfs2_lock_res *lockres,
struct ocfs2_lockres_flag_callback *fcb,
unsigned long mask, unsigned long goal)
{
@@ -933,7 +933,7 @@
/* predict what lock level we'll be dropping down to on behalf
* of another node, and return true if the currently wanted
* level will be compatible with it. */
-static inline int ocfs2_may_continue_on_blocked_lock(ocfs2_lock_res *lockres,
+static inline int ocfs2_may_continue_on_blocked_lock(struct ocfs2_lock_res *lockres,
int wanted)
{
OCFS2_ASSERT(lockres->l_flags & OCFS2_LOCK_BLOCKED);
@@ -957,7 +957,7 @@
}
static int ocfs2_cluster_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level,
int lkm_flags,
ocfs2_lock_callback cb,
@@ -1097,7 +1097,7 @@
}
static void ocfs2_cluster_unlock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int level)
{
mlog_entry_void();
@@ -1118,7 +1118,7 @@
{
int status;
ocfs2_super *osb = OCFS2_SB(inode->i_sb);
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
OCFS2_ASSERT(inode);
OCFS2_ASSERT(ocfs2_inode_is_new(inode));
@@ -1171,7 +1171,7 @@
int write)
{
int status, level;
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
OCFS2_ASSERT(inode);
@@ -1195,7 +1195,7 @@
}
static void ocfs2_vote_on_unlock(ocfs2_super *osb,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
int kick = 0;
@@ -1229,7 +1229,7 @@
int write)
{
int level = write ? LKM_EXMODE : LKM_PRMODE;
- ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_data_lockres;
+ struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_data_lockres;
mlog_entry_void();
@@ -1267,11 +1267,13 @@
{
unsigned int isize_off;
struct ocfs2_inode_info *oi = OCFS2_I(inode);
- ocfs2_lock_res *lockres = &oi->ip_meta_lockres;
- ocfs2_meta_lvb *lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lock_res *lockres = &oi->ip_meta_lockres;
+ struct ocfs2_meta_lvb *lvb;
mlog_entry_void();
+ lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+
/* take advantage of the fact that we don't support holes --
* we only need the byte offset from i_clusters which nicely
* cuts our lvb storage requirement to a u32 */
@@ -1305,11 +1307,13 @@
{
loff_t isize;
struct ocfs2_inode_info *oi = OCFS2_I(inode);
- ocfs2_lock_res *lockres = &oi->ip_meta_lockres;
- ocfs2_meta_lvb *lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lock_res *lockres = &oi->ip_meta_lockres;
+ struct ocfs2_meta_lvb *lvb;
mlog_entry_void();
+ lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+
mlog(0, "seq %u, trunc clusters %u, iclusters %u\n",
be32_to_cpu(lvb->lvb.lvb_seq),
be32_to_cpu(lvb->lvb_trunc_clusters),
@@ -1355,12 +1359,14 @@
static void ocfs2_reset_meta_lvb_values(struct inode *inode)
{
- ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
- ocfs2_meta_lvb *lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
+ struct ocfs2_meta_lvb *lvb;
u32 i_clusters;
mlog_entry_void();
+ lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+
spin_lock(&OCFS2_I(inode)->ip_lock);
i_clusters = OCFS2_I(inode)->ip_clusters;
spin_unlock(&OCFS2_I(inode)->ip_lock);
@@ -1373,10 +1379,10 @@
mlog_exit_void();
}
-static void __ocfs2_lvb_on_downconvert(ocfs2_lock_res *lockres,
+static void __ocfs2_lvb_on_downconvert(struct ocfs2_lock_res *lockres,
int new_level)
{
- ocfs2_lvb *lvb = (ocfs2_lvb *) lockres->l_lksb.lvb;
+ struct ocfs2_lvb *lvb = (struct ocfs2_lvb *) lockres->l_lksb.lvb;
u32 lvb_seq = be32_to_cpu(lvb->lvb_seq);
mlog_entry_void();
@@ -1405,7 +1411,7 @@
*
* > 0 means you need to refresh this and you MUST call
* ocfs2_complete_lock_res_refresh afterwards. */
-static int ocfs2_should_refresh_lock_res(ocfs2_lock_res *lockres)
+static int ocfs2_should_refresh_lock_res(struct ocfs2_lock_res *lockres)
{
int status = 0;
@@ -1437,7 +1443,7 @@
/* If status is non zero, I'll mark it as not being in refresh
* anymroe, but i won't clear the needs refresh flag. */
-static inline void ocfs2_complete_lock_res_refresh(ocfs2_lock_res *lockres,
+static inline void ocfs2_complete_lock_res_refresh(struct ocfs2_lock_res *lockres,
int status)
{
mlog_entry_void();
@@ -1459,7 +1465,7 @@
{
int status = 0;
u32 trustable_clusters = 0;
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
ocfs2_dinode *fe;
mlog_entry_void();
@@ -1570,7 +1576,7 @@
unsigned long cb_data)
{
int status, level, dlm_flags;
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
ocfs2_super *osb = OCFS2_SB(inode->i_sb);
struct buffer_head *local_bh = NULL;
@@ -1658,7 +1664,7 @@
int ex)
{
int level = ex ? LKM_EXMODE : LKM_PRMODE;
- ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
+ struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
mlog_entry_void();
@@ -1676,7 +1682,7 @@
{
int status;
int level = ex ? LKM_EXMODE : LKM_PRMODE;
- ocfs2_lock_res *lockres = &osb->super_lockres;
+ struct ocfs2_lock_res *lockres = &osb->super_lockres;
struct buffer_head *bh;
ocfs2_slot_info *si = osb->slot_info;
@@ -1718,7 +1724,7 @@
int ex)
{
int level = ex ? LKM_EXMODE : LKM_PRMODE;
- ocfs2_lock_res *lockres = &osb->super_lockres;
+ struct ocfs2_lock_res *lockres = &osb->super_lockres;
ocfs2_cluster_unlock(osb, lockres, level);
}
@@ -1785,7 +1791,7 @@
static void ocfs2_unlock_ast_func(void *opaque, dlm_status status)
{
- ocfs2_lock_res *lockres = opaque;
+ struct ocfs2_lock_res *lockres = opaque;
mlog_entry_void();
@@ -1820,7 +1826,7 @@
/* BEWARE: called with lockres lock, and always drops it. Caller
* should not be calling us with a busy lock... */
static int __ocfs2_drop_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
int ret = 0;
dlm_status status;
@@ -1868,7 +1874,7 @@
return ret;
}
-typedef void (ocfs2_pre_drop_cb_t)(ocfs2_lock_res *, void *);
+typedef void (ocfs2_pre_drop_cb_t)(struct ocfs2_lock_res *, void *);
struct drop_lock_cb {
ocfs2_pre_drop_cb_t *drop_func;
@@ -1876,7 +1882,7 @@
};
static int ocfs2_drop_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
struct drop_lock_cb *dcb)
{
/* We didn't get anywhere near actually using this lockres. */
@@ -1922,7 +1928,7 @@
mlog_exit(status);
}
-static void ocfs2_meta_pre_drop(ocfs2_lock_res *lockres, void *data)
+static void ocfs2_meta_pre_drop(struct ocfs2_lock_res *lockres, void *data)
{
struct inode *inode = data;
@@ -1965,7 +1971,7 @@
/* called with the spinlock held, and WILL drop it. */
static int __ocfs2_downconvert_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int new_level,
int lvb)
{
@@ -2016,7 +2022,7 @@
/* called with the spinlock held, and WILL drop it. */
static int __ocfs2_cancel_convert(ocfs2_super *osb,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
int ret;
dlm_status status;
@@ -2062,7 +2068,7 @@
}
static inline int ocfs2_can_downconvert_meta_lock(struct inode *inode,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int new_level)
{
int ret;
@@ -2092,7 +2098,7 @@
int new_level;
int set_lvb = 0;
int ret = 0;
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
mlog_entry_void();
@@ -2166,7 +2172,7 @@
}
static int ocfs2_generic_unblock_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres,
+ struct ocfs2_lock_res *lockres,
int *requeue,
ocfs2_convert_worker_t *worker)
{
@@ -2248,7 +2254,7 @@
return ret;
}
-static void ocfs2_data_convert_worker(ocfs2_lock_res *lockres,
+static void ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres,
int blocking)
{
struct inode *inode;
@@ -2281,8 +2287,8 @@
mlog_exit_void();
}
-int ocfs2_unblock_data(ocfs2_lock_res *lockres,
- int *requeue)
+int ocfs2_unblock_data(struct ocfs2_lock_res *lockres,
+ int *requeue)
{
int status;
struct inode *inode;
@@ -2319,7 +2325,7 @@
return status;
}
-int ocfs2_unblock_meta(ocfs2_lock_res *lockres,
+int ocfs2_unblock_meta(struct ocfs2_lock_res *lockres,
int *requeue)
{
int status;
@@ -2350,7 +2356,7 @@
return status;
}
-static int ocfs2_unblock_super(ocfs2_lock_res *lockres,
+static int ocfs2_unblock_super(struct ocfs2_lock_res *lockres,
int *requeue)
{
int status;
@@ -2372,7 +2378,7 @@
}
void ocfs2_process_blocked_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
int status;
int requeue = 0;
@@ -2399,7 +2405,7 @@
}
static void ocfs2_schedule_blocked_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
mlog_entry_void();
@@ -2416,7 +2422,7 @@
/* needed for inodes as we have to take a reference on them.. */
static void ocfs2_schedule_blocked_inode_lock(struct inode *inode,
- ocfs2_lock_res *lockres)
+ struct ocfs2_lock_res *lockres)
{
mlog_entry_void();
@@ -2434,15 +2440,14 @@
void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
unsigned int trunc_clusters)
{
- ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
- ocfs2_meta_lvb *lvb;
+ struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
+ struct ocfs2_meta_lvb *lvb;
spin_lock(&lockres->l_lock);
OCFS2_ASSERT(lockres->l_level == LKM_EXMODE);
- lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+ lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
if (be32_to_cpu(lvb->lvb_trunc_clusters) > trunc_clusters)
lvb->lvb_trunc_clusters = cpu_to_be32(trunc_clusters);
spin_unlock(&lockres->l_lock);
}
-
Modified: trunk/fs/ocfs2/dlmglue.h
===================================================================
--- trunk/fs/ocfs2/dlmglue.h 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/dlmglue.h 2005-06-02 18:10:20 UTC (rev 2357)
@@ -60,11 +60,11 @@
* if (EX->NL)
* do an additional increment of my local seq.
*/
-typedef struct _ocfs2_lvb {
+struct ocfs2_lvb {
u32 lvb_seq;
-} ocfs2_lvb;
-typedef struct _ocfs2_meta_lvb {
- ocfs2_lvb lvb;
+};
+struct ocfs2_meta_lvb {
+ struct ocfs2_lvb lvb;
u32 lvb_trunc_clusters;
u32 lvb_iclusters;
u32 lvb_iuid;
@@ -76,17 +76,17 @@
u64 lvb_imtime_packed;
u32 lvb_isize_off;
u32 lvb_reserved[3];
-} ocfs2_meta_lvb;
+};
int ocfs2_dlm_init(ocfs2_super *osb);
void ocfs2_dlm_shutdown(ocfs2_super *osb);
-void ocfs2_lock_res_init_once(ocfs2_lock_res *res);
-int ocfs2_inode_lock_res_init(ocfs2_lock_res *res,
+void ocfs2_lock_res_init_once(struct ocfs2_lock_res *res);
+int ocfs2_inode_lock_res_init(struct ocfs2_lock_res *res,
enum ocfs2_lock_type type,
struct inode *inode);
-int ocfs2_super_lock_res_init(ocfs2_lock_res *res,
+int ocfs2_super_lock_res_init(struct ocfs2_lock_res *res,
ocfs2_super *osb);
-void ocfs2_lock_res_free(ocfs2_lock_res *res);
+void ocfs2_lock_res_free(struct ocfs2_lock_res *res);
int ocfs2_create_new_inode_locks(struct inode *inode);
int ocfs2_drop_inode_locks(struct inode *inode);
int ocfs2_data_lock(struct inode *inode,
@@ -115,7 +115,7 @@
int ex);
/* for the vote thread */
void ocfs2_process_blocked_lock(ocfs2_super *osb,
- ocfs2_lock_res *lockres);
+ struct ocfs2_lock_res *lockres);
void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
unsigned int trunc_clusters);
Modified: trunk/fs/ocfs2/extent_map.c
===================================================================
--- trunk/fs/ocfs2/extent_map.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/extent_map.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -32,7 +32,6 @@
#define MLOG_MASK_PREFIX ML_EXTENT_MAP
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "extent_map.h"
Modified: trunk/fs/ocfs2/file.c
===================================================================
--- trunk/fs/ocfs2/file.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/file.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -33,7 +33,6 @@
#define MLOG_MASK_PREFIX ML_INODE
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "aio.h"
Modified: trunk/fs/ocfs2/heartbeat.c
===================================================================
--- trunk/fs/ocfs2/heartbeat.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/heartbeat.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -36,7 +36,6 @@
#define MLOG_MASK_PREFIX ML_SUPER
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/inode.c
===================================================================
--- trunk/fs/ocfs2/inode.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/inode.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -35,7 +35,6 @@
#define MLOG_MASK_PREFIX ML_INODE
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/inode.h
===================================================================
--- trunk/fs/ocfs2/inode.h 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/inode.h 2005-06-02 18:10:20 UTC (rev 2357)
@@ -31,8 +31,8 @@
{
u64 ip_blkno;
- ocfs2_lock_res ip_meta_lockres;
- ocfs2_lock_res ip_data_lockres;
+ struct ocfs2_lock_res ip_meta_lockres;
+ struct ocfs2_lock_res ip_data_lockres;
/* protects allocation changes on this inode. */
struct rw_semaphore ip_alloc_sem;
@@ -53,7 +53,7 @@
* out other I/O to the inode until we either commit or
* abort. */
struct list_head ip_handle_list;
- struct _ocfs2_journal_handle *ip_handle;
+ ocfs2_journal_handle *ip_handle;
atomic_t ip_clean_buffer_seq;
u32 ip_flags; /* see below */
Modified: trunk/fs/ocfs2/journal.c
===================================================================
--- trunk/fs/ocfs2/journal.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/journal.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -32,7 +32,6 @@
#define MLOG_MASK_PREFIX ML_JOURNAL
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/localalloc.c
===================================================================
--- trunk/fs/ocfs2/localalloc.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/localalloc.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -32,7 +32,6 @@
#define MLOG_MASK_PREFIX ML_DISK_ALLOC
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/mmap.c
===================================================================
--- trunk/fs/ocfs2/mmap.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/mmap.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -35,7 +35,6 @@
#define MLOG_MASK_PREFIX ML_FILE_IO
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "dlmglue.h"
Modified: trunk/fs/ocfs2/namei.c
===================================================================
--- trunk/fs/ocfs2/namei.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/namei.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -44,7 +44,6 @@
#define MLOG_MASK_PREFIX ML_NAMEI
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
@@ -63,6 +62,11 @@
#include "buffer_head_io.h"
+#define NAMEI_RA_CHUNKS 2
+#define NAMEI_RA_BLOCKS 4
+#define NAMEI_RA_SIZE (NAMEI_RA_CHUNKS * NAMEI_RA_BLOCKS)
+#define NAMEI_RA_INDEX(c,b) (((c) * NAMEI_RA_BLOCKS) + (b))
+
static int inline ocfs2_search_dirblock(struct buffer_head *bh,
struct inode *dir,
const char *name, int namelen,
Deleted: trunk/fs/ocfs2/ocfs.h
===================================================================
--- trunk/fs/ocfs2/ocfs.h 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/ocfs.h 2005-06-02 18:10:20 UTC (rev 2357)
@@ -1,355 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; -*-
- * vim: noexpandtab sw=8 ts=8 sts=0:
- *
- * ocfs.h
- *
- * Defines macros and structures used in ocfs
- *
- * Copyright (C) 2002, 2004 Oracle. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * 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 for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 021110-1307, USA.
- */
-
-#ifndef OCFS_H
-#define OCFS_H
-
-/*
-** System header files
-*/
-
-#include <linux/spinlock.h>
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/list.h>
-#include <linux/rbtree.h>
-#include <linux/workqueue.h>
-
-#include "cluster/nodemanager.h"
-#include "cluster/heartbeat.h"
-#include "cluster/tcp.h"
-
-#include "dlm/dlmapi.h"
-
-/* convenience macro */
-
-#define OCFS2_ASSERT(cond) do { if (unlikely(!(cond))) BUG(); } while (0)
-
-#define OCFS2_ASSERT_RO(x) \
- do { \
- if (unlikely(!(x))) { \
- printk(KERN_ERR "This should make the filesystem remount RO\n"); \
- BUG(); \
- } \
- } while (0)
-
-
-#define OCFS2_MAX_OSB_ID 65536
-
-#define OCFS2_IS_VALID_DINODE(ptr) \
- (!strcmp((ptr)->i_signature, OCFS2_INODE_SIGNATURE))
-
-#define OCFS2_BUG_ON_INVALID_DINODE(__di) do { \
- mlog_bug_on_msg(!OCFS2_IS_VALID_DINODE((__di)), \
- "Dinode # %"MLFu64" has bad signature %.*s\n", \
- (__di)->i_blkno, 7, \
- (__di)->i_signature); \
-} while (0);
-
-#define OCFS2_IS_VALID_EXTENT_BLOCK(ptr) \
- (!strcmp((ptr)->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE))
-
-#define OCFS2_BUG_ON_INVALID_EXTENT_BLOCK(__eb) do { \
- mlog_bug_on_msg(!OCFS2_IS_VALID_EXTENT_BLOCK((__eb)), \
- "Extent Block # %"MLFu64" has bad signature %.*s\n", \
- (__eb)->h_blkno, 7, \
- (__eb)->h_signature); \
-} while (0);
-
-#define OCFS2_IS_VALID_GROUP_DESC(ptr) \
- (!strcmp((ptr)->bg_signature, OCFS2_GROUP_DESC_SIGNATURE))
-
-#define OCFS2_BUG_ON_INVALID_GROUP_DESC(__gd) do { \
- mlog_bug_on_msg(!OCFS2_IS_VALID_GROUP_DESC((__gd)), \
- "Group Descriptor # %"MLFu64" has bad signature %.*s\n",\
- (__gd)->bg_blkno, 7, \
- (__gd)->bg_signature); \
-} while (0);
-
-/*
-** Structures...
-*/
-
-#define OCFS2_SB(sb) ((ocfs2_super *)(sb)->s_fs_info)
-
-/* This totally sucks that we have to include these here
- * FIXME: Make them seperately includable. */
-#include "ocfs2_fs.h"
-
-typedef struct _ocfs2_super ocfs2_super;
-
-/* this limits us to 256 nodes
- * if we need more, we can do a kmalloc for the map */
-#define OCFS2_NODE_MAP_MAX_NODES 256
-typedef struct _ocfs2_node_map
-{
- u16 num_nodes;
- unsigned long map[BITS_TO_LONGS(OCFS2_NODE_MAP_MAX_NODES)];
-} ocfs2_node_map;
-
-struct _ocfs2_journal_handle;
-
-/* I hate our includes */
-struct ocfs2_extent_map {
- u32 em_clusters;
- struct rb_root em_extents;
-};
-
-enum ocfs2_ast_action {
- OCFS2_AST_INVALID = 0,
- OCFS2_AST_ATTACH,
- OCFS2_AST_CONVERT,
- OCFS2_AST_DOWNCONVERT,
-};
-
-/* actions for an unlockast function to take. */
-enum ocfs2_unlock_action {
- OCFS2_UNLOCK_INVALID = 0,
- OCFS2_UNLOCK_CANCEL_CONVERT,
- OCFS2_UNLOCK_DROP_LOCK,
-};
-
-enum ocfs2_lock_type {
- OCFS2_TYPE_META = 0,
- OCFS2_TYPE_DATA,
- OCFS2_TYPE_SUPER,
- OCFS2_NUM_LOCK_TYPES
-};
-
-/* ocfs2_lock_res->l_flags flags. */
-#define OCFS2_LOCK_ATTACHED (0x00000001) /* have we initialized
- * the lvb */
-#define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in
- * dlm_lock */
-#define OCFS2_LOCK_BLOCKED (0x00000004) /* blocked waiting to
- * downconvert*/
-#define OCFS2_LOCK_LOCAL (0x00000008) /* newly created inode */
-#define OCFS2_LOCK_NEEDS_REFRESH (0x00000010)
-#define OCFS2_LOCK_REFRESHING (0x00000020)
-#define OCFS2_LOCK_INITIALIZED (0x00000040) /* track initialization
- * for shutdown paths */
-
-struct ocfs2_lock_res_ops;
-
-typedef void (*ocfs2_lock_callback)(int status, unsigned long data);
-
-struct ocfs2_lockres_flag_callback {
- struct list_head fc_lockres_item;
- unsigned fc_free_once_called:1;
-
- unsigned long fc_flag_mask;
- unsigned long fc_flag_goal;
-
- ocfs2_lock_callback fc_cb;
- unsigned long fc_data;
-};
-
-typedef struct _ocfs2_lock_res {
- void *l_priv;
- struct ocfs2_lock_res_ops *l_ops;
- spinlock_t l_lock;
-
- struct list_head l_blocked_list;
- struct list_head l_flag_cb_list;
-
- enum ocfs2_lock_type l_type;
- unsigned long l_flags;
- char *l_name;
- int l_level;
- unsigned int l_ro_holders;
- unsigned int l_ex_holders;
- dlm_lockstatus l_lksb;
- u32 l_local_seq;
-
- /* used from AST/BAST funcs. */
- enum ocfs2_ast_action l_action;
- enum ocfs2_unlock_action l_unlock_action;
- int l_requested;
- int l_blocking;
-
- wait_queue_head_t l_event;
-} ocfs2_lock_res;
-
-typedef enum _ocfs2_vol_state
-{
- VOLUME_INIT = 0,
- VOLUME_MOUNTED,
- VOLUME_DISMOUNTED,
- VOLUME_DISABLED
-}
-ocfs2_vol_state;
-
-typedef struct _ocfs2_alloc_stats
-{
- atomic_t moves;
- atomic_t local_data;
- atomic_t bitmap_data;
- atomic_t bg_allocs;
- atomic_t bg_extends;
-} ocfs2_alloc_stats;
-
-enum ocfs2_local_alloc_state
-{
- OCFS2_LA_UNUSED = 0,
- OCFS2_LA_ENABLED,
- OCFS2_LA_DISABLED
-};
-
-enum ocfs2_mount_options
-{
- OCFS2_MOUNT_HB_OK = 1 << 0, /* Heartbeat started */
- OCFS2_MOUNT_BARRIER = 1 << 1 /* Use block barriers */
-};
-
-struct _ocfs2_journal;
-struct _ocfs2_slot_info;
-
-/*
- * ocfs2_super
- *
- * A mounted volume is represented using the following structure.
- */
-struct _ocfs2_super
-{
- u32 osb_id; /* id used by the proc interface */
- struct task_struct *commit_task;
- struct super_block *sb;
- struct inode *root_inode;
- struct inode *sys_root_inode;
- struct inode *system_inodes[NUM_SYSTEM_INODES];
-
- struct _ocfs2_slot_info *slot_info;
-
- spinlock_t node_map_lock;
- ocfs2_node_map mounted_map;
- ocfs2_node_map recovery_map;
- ocfs2_node_map umount_map;
-
- u32 num_clusters;
- u64 root_blkno;
- u64 system_dir_blkno;
- u64 bitmap_blkno;
- u32 bitmap_cpg;
- u8 *uuid;
- char *uuid_str;
- u8 *vol_label;
- u64 first_cluster_group_blkno;
- u32 fs_generation;
-
- u32 s_feature_compat;
- u32 s_feature_incompat;
- u32 s_feature_ro_compat;
-
- spinlock_t s_next_gen_lock;
- u32 s_next_generation;
-
- unsigned long s_mount_opt;
-
- u16 max_slots;
- u16 num_nodes;
- s16 node_num;
- s16 slot_num;
- int s_sectsize_bits;
- int s_clustersize;
- int s_clustersize_bits;
- struct proc_dir_entry *proc_sub_dir; /* points to /proc/fs/ocfs2/<maj_min> */
-
- atomic_t vol_state;
- struct semaphore recovery_lock;
- struct task_struct *recovery_thread_task;
- int disable_recovery;
- wait_queue_head_t checkpoint_event;
- atomic_t needs_checkpoint;
- struct _ocfs2_journal *journal;
- atomic_t clean_buffer_seq;
-
- enum ocfs2_local_alloc_state local_alloc_state;
- struct buffer_head *local_alloc_bh;
-
- /* Next two fields are for local node slot recovery during
- * mount. */
- int dirty;
- ocfs2_dinode *local_alloc_copy;
-
- ocfs2_alloc_stats alloc_stats;
- char dev_str[20]; /* "major,minor" of the device */
-
- dlm_ctxt *dlm;
- ocfs2_lock_res super_lockres;
-
- wait_queue_head_t recovery_event;
-
- spinlock_t vote_task_lock;
- struct task_struct *vote_task;
- wait_queue_head_t vote_event;
- unsigned long vote_wake_sequence;
- unsigned long vote_work_sequence;
-
- struct list_head blocked_lock_list;
- unsigned long blocked_lock_count;
-
- struct list_head vote_list;
- int vote_count;
-
- u32 net_key;
- spinlock_t net_response_lock;
- unsigned int net_response_ids;
- struct list_head net_response_list;
-
- struct o2hb_callback_func osb_hb_up;
- struct o2hb_callback_func osb_hb_down;
-
- struct list_head osb_net_handlers;
-
- /* see ocfs2_ki_dtor. _lock is grabbed in interrupt context in
- * _dtor, maybe, so be sure to use _irqsave */
- spinlock_t osb_okp_teardown_lock;
- struct work_struct osb_okp_teardown_work;
- struct list_head osb_okp_teardown_list;
- struct list_head osb_okp_pending_list;
- wait_queue_head_t osb_okp_pending_wq;
-
- wait_queue_head_t osb_mount_event;
-
- /* Truncate log info */
- struct inode *osb_tl_inode;
- struct buffer_head *osb_tl_bh;
- struct work_struct osb_truncate_log_wq;
-};
-
-#define NAMEI_RA_CHUNKS 2
-#define NAMEI_RA_BLOCKS 4
-#define NAMEI_RA_SIZE (NAMEI_RA_CHUNKS * NAMEI_RA_BLOCKS)
-#define NAMEI_RA_INDEX(c,b) (((c) * NAMEI_RA_BLOCKS) + (b))
-
-static inline unsigned long ino_from_blkno(struct super_block *sb,
- u64 blkno)
-{
- return (unsigned long)(blkno & (u64)ULONG_MAX);
-}
-
-typedef struct _ocfs2_journal_handle ocfs2_journal_handle;
-
-#endif /* !OCFS_H */
Modified: trunk/fs/ocfs2/ocfs2.h
===================================================================
--- trunk/fs/ocfs2/ocfs2.h 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/ocfs2.h 2005-06-02 18:10:20 UTC (rev 2357)
@@ -26,7 +26,302 @@
#ifndef OCFS2_H
#define OCFS2_H
+#include <linux/spinlock.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/list.h>
+#include <linux/rbtree.h>
+#include <linux/workqueue.h>
+#include "cluster/nodemanager.h"
+#include "cluster/heartbeat.h"
+#include "cluster/tcp.h"
+
+#include "dlm/dlmapi.h"
+
+#include "ocfs2_fs.h"
+
+struct ocfs2_extent_map {
+ u32 em_clusters;
+ struct rb_root em_extents;
+};
+
+/* this limits us to 256 nodes
+ * if we need more, we can do a kmalloc for the map */
+#define OCFS2_NODE_MAP_MAX_NODES 256
+typedef struct _ocfs2_node_map
+{
+ u16 num_nodes;
+ unsigned long map[BITS_TO_LONGS(OCFS2_NODE_MAP_MAX_NODES)];
+} ocfs2_node_map;
+
+enum ocfs2_ast_action {
+ OCFS2_AST_INVALID = 0,
+ OCFS2_AST_ATTACH,
+ OCFS2_AST_CONVERT,
+ OCFS2_AST_DOWNCONVERT,
+};
+
+/* actions for an unlockast function to take. */
+enum ocfs2_unlock_action {
+ OCFS2_UNLOCK_INVALID = 0,
+ OCFS2_UNLOCK_CANCEL_CONVERT,
+ OCFS2_UNLOCK_DROP_LOCK,
+};
+
+enum ocfs2_lock_type {
+ OCFS2_TYPE_META = 0,
+ OCFS2_TYPE_DATA,
+ OCFS2_TYPE_SUPER,
+ OCFS2_NUM_LOCK_TYPES
+};
+
+/* ocfs2_lock_res->l_flags flags. */
+#define OCFS2_LOCK_ATTACHED (0x00000001) /* have we initialized
+ * the lvb */
+#define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in
+ * dlm_lock */
+#define OCFS2_LOCK_BLOCKED (0x00000004) /* blocked waiting to
+ * downconvert*/
+#define OCFS2_LOCK_LOCAL (0x00000008) /* newly created inode */
+#define OCFS2_LOCK_NEEDS_REFRESH (0x00000010)
+#define OCFS2_LOCK_REFRESHING (0x00000020)
+#define OCFS2_LOCK_INITIALIZED (0x00000040) /* track initialization
+ * for shutdown paths */
+
+struct ocfs2_lock_res_ops;
+
+typedef void (*ocfs2_lock_callback)(int status, unsigned long data);
+
+struct ocfs2_lockres_flag_callback {
+ struct list_head fc_lockres_item;
+ unsigned fc_free_once_called:1;
+
+ unsigned long fc_flag_mask;
+ unsigned long fc_flag_goal;
+
+ ocfs2_lock_callback fc_cb;
+ unsigned long fc_data;
+};
+
+struct ocfs2_lock_res {
+ void *l_priv;
+ struct ocfs2_lock_res_ops *l_ops;
+ spinlock_t l_lock;
+
+ struct list_head l_blocked_list;
+ struct list_head l_flag_cb_list;
+
+ enum ocfs2_lock_type l_type;
+ unsigned long l_flags;
+ char *l_name;
+ int l_level;
+ unsigned int l_ro_holders;
+ unsigned int l_ex_holders;
+ dlm_lockstatus l_lksb;
+ u32 l_local_seq;
+
+ /* used from AST/BAST funcs. */
+ enum ocfs2_ast_action l_action;
+ enum ocfs2_unlock_action l_unlock_action;
+ int l_requested;
+ int l_blocking;
+
+ wait_queue_head_t l_event;
+};
+
+enum ocfs2_vol_state
+{
+ VOLUME_INIT = 0,
+ VOLUME_MOUNTED,
+ VOLUME_DISMOUNTED,
+ VOLUME_DISABLED
+};
+
+struct ocfs2_alloc_stats
+{
+ atomic_t moves;
+ atomic_t local_data;
+ atomic_t bitmap_data;
+ atomic_t bg_allocs;
+ atomic_t bg_extends;
+};
+
+enum ocfs2_local_alloc_state
+{
+ OCFS2_LA_UNUSED = 0,
+ OCFS2_LA_ENABLED,
+ OCFS2_LA_DISABLED
+};
+
+enum ocfs2_mount_options
+{
+ OCFS2_MOUNT_HB_OK = 1 << 0, /* Heartbeat started */
+ OCFS2_MOUNT_BARRIER = 1 << 1 /* Use block barriers */
+};
+
+struct _ocfs2_journal;
+struct _ocfs2_slot_info;
+typedef struct _ocfs2_journal_handle ocfs2_journal_handle;
+
+typedef struct _ocfs2_super
+{
+ u32 osb_id; /* id used by the proc interface */
+ struct task_struct *commit_task;
+ struct super_block *sb;
+ struct inode *root_inode;
+ struct inode *sys_root_inode;
+ struct inode *system_inodes[NUM_SYSTEM_INODES];
+
+ struct _ocfs2_slot_info *slot_info;
+
+ spinlock_t node_map_lock;
+ ocfs2_node_map mounted_map;
+ ocfs2_node_map recovery_map;
+ ocfs2_node_map umount_map;
+
+ u32 num_clusters;
+ u64 root_blkno;
+ u64 system_dir_blkno;
+ u64 bitmap_blkno;
+ u32 bitmap_cpg;
+ u8 *uuid;
+ char *uuid_str;
+ u8 *vol_label;
+ u64 first_cluster_group_blkno;
+ u32 fs_generation;
+
+ u32 s_feature_compat;
+ u32 s_feature_incompat;
+ u32 s_feature_ro_compat;
+
+ spinlock_t s_next_gen_lock;
+ u32 s_next_generation;
+
+ unsigned long s_mount_opt;
+
+ u16 max_slots;
+ u16 num_nodes;
+ s16 node_num;
+ s16 slot_num;
+ int s_sectsize_bits;
+ int s_clustersize;
+ int s_clustersize_bits;
+ struct proc_dir_entry *proc_sub_dir; /* points to /proc/fs/ocfs2/<maj_min> */
+
+ atomic_t vol_state;
+ struct semaphore recovery_lock;
+ struct task_struct *recovery_thread_task;
+ int disable_recovery;
+ wait_queue_head_t checkpoint_event;
+ atomic_t needs_checkpoint;
+ struct _ocfs2_journal *journal;
+ atomic_t clean_buffer_seq;
+
+ enum ocfs2_local_alloc_state local_alloc_state;
+ struct buffer_head *local_alloc_bh;
+
+ /* Next two fields are for local node slot recovery during
+ * mount. */
+ int dirty;
+ ocfs2_dinode *local_alloc_copy;
+
+ struct ocfs2_alloc_stats alloc_stats;
+ char dev_str[20]; /* "major,minor" of the device */
+
+ dlm_ctxt *dlm;
+ struct ocfs2_lock_res super_lockres;
+
+ wait_queue_head_t recovery_event;
+
+ spinlock_t vote_task_lock;
+ struct task_struct *vote_task;
+ wait_queue_head_t vote_event;
+ unsigned long vote_wake_sequence;
+ unsigned long vote_work_sequence;
+
+ struct list_head blocked_lock_list;
+ unsigned long blocked_lock_count;
+
+ struct list_head vote_list;
+ int vote_count;
+
+ u32 net_key;
+ spinlock_t net_response_lock;
+ unsigned int net_response_ids;
+ struct list_head net_response_list;
+
+ struct o2hb_callback_func osb_hb_up;
+ struct o2hb_callback_func osb_hb_down;
+
+ struct list_head osb_net_handlers;
+
+ /* see ocfs2_ki_dtor. _lock is grabbed in interrupt context in
+ * _dtor, maybe, so be sure to use _irqsave */
+ spinlock_t osb_okp_teardown_lock;
+ struct work_struct osb_okp_teardown_work;
+ struct list_head osb_okp_teardown_list;
+ struct list_head osb_okp_pending_list;
+ wait_queue_head_t osb_okp_pending_wq;
+
+ wait_queue_head_t osb_mount_event;
+
+ /* Truncate log info */
+ struct inode *osb_tl_inode;
+ struct buffer_head *osb_tl_bh;
+ struct work_struct osb_truncate_log_wq;
+} ocfs2_super;
+
+#define OCFS2_SB(sb) ((ocfs2_super *)(sb)->s_fs_info)
+#define OCFS2_MAX_OSB_ID 65536
+
+#define OCFS2_ASSERT(cond) do { if (unlikely(!(cond))) BUG(); } while (0)
+
+#define OCFS2_ASSERT_RO(x) \
+ do { \
+ if (unlikely(!(x))) { \
+ printk(KERN_ERR "This should make OCFS2 " \
+ "remount RO\n"); \
+ BUG(); \
+ } \
+ } while (0)
+
+#define OCFS2_IS_VALID_DINODE(ptr) \
+ (!strcmp((ptr)->i_signature, OCFS2_INODE_SIGNATURE))
+
+#define OCFS2_BUG_ON_INVALID_DINODE(__di) do { \
+ mlog_bug_on_msg(!OCFS2_IS_VALID_DINODE((__di)), \
+ "Dinode # %"MLFu64" has bad signature %.*s\n", \
+ (__di)->i_blkno, 7, \
+ (__di)->i_signature); \
+} while (0);
+
+#define OCFS2_IS_VALID_EXTENT_BLOCK(ptr) \
+ (!strcmp((ptr)->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE))
+
+#define OCFS2_BUG_ON_INVALID_EXTENT_BLOCK(__eb) do { \
+ mlog_bug_on_msg(!OCFS2_IS_VALID_EXTENT_BLOCK((__eb)), \
+ "Extent Block # %"MLFu64" has bad signature %.*s\n", \
+ (__eb)->h_blkno, 7, \
+ (__eb)->h_signature); \
+} while (0);
+
+#define OCFS2_IS_VALID_GROUP_DESC(ptr) \
+ (!strcmp((ptr)->bg_signature, OCFS2_GROUP_DESC_SIGNATURE))
+
+#define OCFS2_BUG_ON_INVALID_GROUP_DESC(__gd) do { \
+ mlog_bug_on_msg(!OCFS2_IS_VALID_GROUP_DESC((__gd)), \
+ "Group Descriptor # %"MLFu64" has bad signature %.*s\n",\
+ (__gd)->bg_blkno, 7, \
+ (__gd)->bg_signature); \
+} while (0);
+
+static inline unsigned long ino_from_blkno(struct super_block *sb,
+ u64 blkno)
+{
+ return (unsigned long)(blkno & (u64)ULONG_MAX);
+}
+
static inline u64 ocfs2_clusters_to_blocks(struct super_block *sb,
u32 clusters)
{
Modified: trunk/fs/ocfs2/proc.c
===================================================================
--- trunk/fs/ocfs2/proc.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/proc.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -32,7 +32,6 @@
#define MLOG_MASK_PREFIX ML_SUPER
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "proc.h"
Modified: trunk/fs/ocfs2/slot_map.c
===================================================================
--- trunk/fs/ocfs2/slot_map.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/slot_map.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -31,7 +31,6 @@
#define MLOG_MASK_PREFIX ML_SUPER
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "dlmglue.h"
Modified: trunk/fs/ocfs2/suballoc.c
===================================================================
--- trunk/fs/ocfs2/suballoc.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/suballoc.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -32,7 +32,6 @@
#define MLOG_MASK_PREFIX ML_DISK_ALLOC
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/super.c
===================================================================
--- trunk/fs/ocfs2/super.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/super.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -43,7 +43,6 @@
#define MLOG_MASK_PREFIX ML_SUPER
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "aio.h"
Modified: trunk/fs/ocfs2/symlink.c
===================================================================
--- trunk/fs/ocfs2/symlink.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/symlink.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -43,7 +43,6 @@
#define MLOG_MASK_PREFIX ML_NAMEI
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
Modified: trunk/fs/ocfs2/sysfile.c
===================================================================
--- trunk/fs/ocfs2/sysfile.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/sysfile.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -28,7 +28,6 @@
#include <linux/slab.h>
#include <linux/highmem.h>
-#include "ocfs.h"
#include "ocfs2.h"
#define MLOG_MASK_PREFIX ML_INODE
Modified: trunk/fs/ocfs2/vote.c
===================================================================
--- trunk/fs/ocfs2/vote.c 2005-06-02 03:50:59 UTC (rev 2356)
+++ trunk/fs/ocfs2/vote.c 2005-06-02 18:10:20 UTC (rev 2357)
@@ -38,7 +38,6 @@
#define MLOG_MASK_PREFIX ML_VOTE
#include <cluster/masklog.h>
-#include "ocfs.h"
#include "ocfs2.h"
#include "alloc.h"
@@ -372,7 +371,7 @@
static void ocfs2_vote_thread_do_work(ocfs2_super *osb)
{
unsigned long processed;
- ocfs2_lock_res *lockres;
+ struct ocfs2_lock_res *lockres;
ocfs2_vote_work *work;
mlog_entry_void();
@@ -387,7 +386,7 @@
OCFS2_ASSERT(!list_empty(&osb->blocked_lock_list));
lockres = list_entry(osb->blocked_lock_list.next,
- ocfs2_lock_res, l_blocked_list);
+ struct ocfs2_lock_res, l_blocked_list);
list_del_init(&lockres->l_blocked_list);
osb->blocked_lock_count--;
spin_unlock(&osb->vote_task_lock);
More information about the Ocfs2-commits
mailing list