提交 c5750ee6 编写于 作者: L Linus Torvalds

Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:
  [PATCH] fs/ocfs2/aops.c: Correct use of ! and &
  [2.6 patch] ocfs2: make dlm_do_assert_master() static
  [2.6 patch] make ocfs2_downconvert_thread() static
  [2.6 patch] fs/ocfs2/: possible cleanups
  [PATCH] ocfs2: le*_add_cpu conversion
  ocfs2: Fix writeout in ocfs2_data_convert_worker()
  ocfs2: Enable localalloc for local mounts
...@@ -257,7 +257,7 @@ static int ocfs2_readpage_inline(struct inode *inode, struct page *page) ...@@ -257,7 +257,7 @@ static int ocfs2_readpage_inline(struct inode *inode, struct page *page)
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
BUG_ON(!PageLocked(page)); BUG_ON(!PageLocked(page));
BUG_ON(!OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL); BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL));
ret = ocfs2_read_block(osb, OCFS2_I(inode)->ip_blkno, &di_bh, ret = ocfs2_read_block(osb, OCFS2_I(inode)->ip_blkno, &di_bh,
OCFS2_BH_CACHED, inode); OCFS2_BH_CACHED, inode);
......
...@@ -390,9 +390,8 @@ static int __ocfs2_delete_entry(handle_t *handle, struct inode *dir, ...@@ -390,9 +390,8 @@ static int __ocfs2_delete_entry(handle_t *handle, struct inode *dir,
goto bail; goto bail;
} }
if (pde) if (pde)
pde->rec_len = le16_add_cpu(&pde->rec_len,
cpu_to_le16(le16_to_cpu(pde->rec_len) + le16_to_cpu(de->rec_len));
le16_to_cpu(de->rec_len));
else else
de->inode = 0; de->inode = 0;
dir->i_version++; dir->i_version++;
......
...@@ -1695,9 +1695,9 @@ int dlm_master_request_handler(struct o2net_msg *msg, u32 len, void *data, ...@@ -1695,9 +1695,9 @@ int dlm_master_request_handler(struct o2net_msg *msg, u32 len, void *data,
* can periodically run all locks owned by this node * can periodically run all locks owned by this node
* and re-assert across the cluster... * and re-assert across the cluster...
*/ */
int dlm_do_assert_master(struct dlm_ctxt *dlm, static int dlm_do_assert_master(struct dlm_ctxt *dlm,
struct dlm_lock_resource *res, struct dlm_lock_resource *res,
void *nodemap, u32 flags) void *nodemap, u32 flags)
{ {
struct dlm_assert_master assert; struct dlm_assert_master assert;
int to, tmpret; int to, tmpret;
......
...@@ -3042,7 +3042,7 @@ static int ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres, ...@@ -3042,7 +3042,7 @@ static int ocfs2_data_convert_worker(struct ocfs2_lock_res *lockres,
inode = ocfs2_lock_res_inode(lockres); inode = ocfs2_lock_res_inode(lockres);
mapping = inode->i_mapping; mapping = inode->i_mapping;
if (S_ISREG(inode->i_mode)) if (!S_ISREG(inode->i_mode))
goto out; goto out;
/* /*
...@@ -3219,8 +3219,8 @@ static int ocfs2_dentry_convert_worker(struct ocfs2_lock_res *lockres, ...@@ -3219,8 +3219,8 @@ static int ocfs2_dentry_convert_worker(struct ocfs2_lock_res *lockres,
return UNBLOCK_CONTINUE_POST; return UNBLOCK_CONTINUE_POST;
} }
void ocfs2_process_blocked_lock(struct ocfs2_super *osb, static void ocfs2_process_blocked_lock(struct ocfs2_super *osb,
struct ocfs2_lock_res *lockres) struct ocfs2_lock_res *lockres)
{ {
int status; int status;
struct ocfs2_unblock_ctl ctl = {0, 0,}; struct ocfs2_unblock_ctl ctl = {0, 0,};
...@@ -3356,7 +3356,7 @@ static int ocfs2_downconvert_thread_should_wake(struct ocfs2_super *osb) ...@@ -3356,7 +3356,7 @@ static int ocfs2_downconvert_thread_should_wake(struct ocfs2_super *osb)
return should_wake; return should_wake;
} }
int ocfs2_downconvert_thread(void *arg) static int ocfs2_downconvert_thread(void *arg)
{ {
int status = 0; int status = 0;
struct ocfs2_super *osb = arg; struct ocfs2_super *osb = arg;
......
...@@ -109,8 +109,6 @@ void ocfs2_simple_drop_lockres(struct ocfs2_super *osb, ...@@ -109,8 +109,6 @@ void ocfs2_simple_drop_lockres(struct ocfs2_super *osb,
struct ocfs2_lock_res *lockres); struct ocfs2_lock_res *lockres);
/* for the downconvert thread */ /* for the downconvert thread */
void ocfs2_process_blocked_lock(struct ocfs2_super *osb,
struct ocfs2_lock_res *lockres);
void ocfs2_wake_downconvert_thread(struct ocfs2_super *osb); void ocfs2_wake_downconvert_thread(struct ocfs2_super *osb);
struct ocfs2_dlm_debug *ocfs2_new_dlm_debug(void); struct ocfs2_dlm_debug *ocfs2_new_dlm_debug(void);
......
...@@ -49,10 +49,15 @@ static inline void __ocfs2_node_map_set_bit(struct ocfs2_node_map *map, ...@@ -49,10 +49,15 @@ static inline void __ocfs2_node_map_set_bit(struct ocfs2_node_map *map,
static inline void __ocfs2_node_map_clear_bit(struct ocfs2_node_map *map, static inline void __ocfs2_node_map_clear_bit(struct ocfs2_node_map *map,
int bit); int bit);
static inline int __ocfs2_node_map_is_empty(struct ocfs2_node_map *map); static inline int __ocfs2_node_map_is_empty(struct ocfs2_node_map *map);
static void __ocfs2_node_map_dup(struct ocfs2_node_map *target,
struct ocfs2_node_map *from); /* special case -1 for now
static void __ocfs2_node_map_set(struct ocfs2_node_map *target, * TODO: should *really* make sure the calling func never passes -1!! */
struct ocfs2_node_map *from); static void ocfs2_node_map_init(struct ocfs2_node_map *map)
{
map->num_nodes = OCFS2_NODE_MAP_MAX_NODES;
memset(map->map, 0, BITS_TO_LONGS(OCFS2_NODE_MAP_MAX_NODES) *
sizeof(unsigned long));
}
void ocfs2_init_node_maps(struct ocfs2_super *osb) void ocfs2_init_node_maps(struct ocfs2_super *osb)
{ {
...@@ -136,15 +141,6 @@ void ocfs2_stop_heartbeat(struct ocfs2_super *osb) ...@@ -136,15 +141,6 @@ void ocfs2_stop_heartbeat(struct ocfs2_super *osb)
mlog_errno(ret); mlog_errno(ret);
} }
/* special case -1 for now
* TODO: should *really* make sure the calling func never passes -1!! */
void ocfs2_node_map_init(struct ocfs2_node_map *map)
{
map->num_nodes = OCFS2_NODE_MAP_MAX_NODES;
memset(map->map, 0, BITS_TO_LONGS(OCFS2_NODE_MAP_MAX_NODES) *
sizeof(unsigned long));
}
static inline void __ocfs2_node_map_set_bit(struct ocfs2_node_map *map, static inline void __ocfs2_node_map_set_bit(struct ocfs2_node_map *map,
int bit) int bit)
{ {
...@@ -216,6 +212,8 @@ int ocfs2_node_map_is_empty(struct ocfs2_super *osb, ...@@ -216,6 +212,8 @@ int ocfs2_node_map_is_empty(struct ocfs2_super *osb,
return ret; return ret;
} }
#if 0
static void __ocfs2_node_map_dup(struct ocfs2_node_map *target, static void __ocfs2_node_map_dup(struct ocfs2_node_map *target,
struct ocfs2_node_map *from) struct ocfs2_node_map *from)
{ {
...@@ -254,6 +252,8 @@ static void __ocfs2_node_map_set(struct ocfs2_node_map *target, ...@@ -254,6 +252,8 @@ static void __ocfs2_node_map_set(struct ocfs2_node_map *target,
target->map[i] = from->map[i]; target->map[i] = from->map[i];
} }
#endif /* 0 */
/* Returns whether the recovery bit was actually set - it may not be /* Returns whether the recovery bit was actually set - it may not be
* if a node is still marked as needing recovery */ * if a node is still marked as needing recovery */
int ocfs2_recovery_map_set(struct ocfs2_super *osb, int ocfs2_recovery_map_set(struct ocfs2_super *osb,
......
...@@ -33,7 +33,6 @@ void ocfs2_stop_heartbeat(struct ocfs2_super *osb); ...@@ -33,7 +33,6 @@ void ocfs2_stop_heartbeat(struct ocfs2_super *osb);
/* node map functions - used to keep track of mounted and in-recovery /* node map functions - used to keep track of mounted and in-recovery
* nodes. */ * nodes. */
void ocfs2_node_map_init(struct ocfs2_node_map *map);
int ocfs2_node_map_is_empty(struct ocfs2_super *osb, int ocfs2_node_map_is_empty(struct ocfs2_super *osb,
struct ocfs2_node_map *map); struct ocfs2_node_map *map);
void ocfs2_node_map_set_bit(struct ocfs2_super *osb, void ocfs2_node_map_set_bit(struct ocfs2_super *osb,
...@@ -57,9 +56,5 @@ int ocfs2_recovery_map_set(struct ocfs2_super *osb, ...@@ -57,9 +56,5 @@ int ocfs2_recovery_map_set(struct ocfs2_super *osb,
int num); int num);
void ocfs2_recovery_map_clear(struct ocfs2_super *osb, void ocfs2_recovery_map_clear(struct ocfs2_super *osb,
int num); int num);
/* returns 1 if bit is the only bit set in target, 0 otherwise */
int ocfs2_node_map_is_only(struct ocfs2_super *osb,
struct ocfs2_node_map *target,
int bit);
#endif /* OCFS2_HEARTBEAT_H */ #endif /* OCFS2_HEARTBEAT_H */
...@@ -120,9 +120,6 @@ int ocfs2_load_local_alloc(struct ocfs2_super *osb) ...@@ -120,9 +120,6 @@ int ocfs2_load_local_alloc(struct ocfs2_super *osb)
mlog_entry_void(); mlog_entry_void();
if (ocfs2_mount_local(osb))
goto bail;
if (osb->local_alloc_size == 0) if (osb->local_alloc_size == 0)
goto bail; goto bail;
...@@ -588,8 +585,7 @@ int ocfs2_claim_local_alloc_bits(struct ocfs2_super *osb, ...@@ -588,8 +585,7 @@ int ocfs2_claim_local_alloc_bits(struct ocfs2_super *osb,
while(bits_wanted--) while(bits_wanted--)
ocfs2_set_bit(start++, bitmap); ocfs2_set_bit(start++, bitmap);
alloc->id1.bitmap1.i_used = cpu_to_le32(*num_bits + le32_add_cpu(&alloc->id1.bitmap1.i_used, *num_bits);
le32_to_cpu(alloc->id1.bitmap1.i_used));
status = ocfs2_journal_dirty(handle, osb->local_alloc_bh); status = ocfs2_journal_dirty(handle, osb->local_alloc_bh);
if (status < 0) { if (status < 0) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册