ocfs2: Pass struct ocfs2_caching_info to the journal functions.
The next step in divorcing metadata I/O management from struct inode is to pass struct ocfs2_caching_info to the journal functions. Thus the journal locks a metadata cache with the cache io_lock function. It also can compare ci_last_trans and ci_created_trans directly. This is a large patch because of all the places we change ocfs2_journal_access..(handle, inode, ...) to ocfs2_journal_access..(handle, INODE_CACHE(inode), ...). Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
@@ -352,7 +352,7 @@ static int ocfs2_block_group_fill(handle_t *handle,
|
||||
}
|
||||
|
||||
status = ocfs2_journal_access_gd(handle,
|
||||
alloc_inode,
|
||||
INODE_CACHE(alloc_inode),
|
||||
bg_bh,
|
||||
OCFS2_JOURNAL_ACCESS_CREATE);
|
||||
if (status < 0) {
|
||||
@@ -491,7 +491,7 @@ static int ocfs2_block_group_alloc(struct ocfs2_super *osb,
|
||||
|
||||
bg = (struct ocfs2_group_desc *) bg_bh->b_data;
|
||||
|
||||
status = ocfs2_journal_access_di(handle, alloc_inode,
|
||||
status = ocfs2_journal_access_di(handle, INODE_CACHE(alloc_inode),
|
||||
bh, OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
@@ -1033,7 +1033,7 @@ static inline int ocfs2_block_group_set_bits(handle_t *handle,
|
||||
journal_type = OCFS2_JOURNAL_ACCESS_UNDO;
|
||||
|
||||
status = ocfs2_journal_access_gd(handle,
|
||||
alloc_inode,
|
||||
INODE_CACHE(alloc_inode),
|
||||
group_bh,
|
||||
journal_type);
|
||||
if (status < 0) {
|
||||
@@ -1106,7 +1106,8 @@ static int ocfs2_relink_block_group(handle_t *handle,
|
||||
bg_ptr = le64_to_cpu(bg->bg_next_group);
|
||||
prev_bg_ptr = le64_to_cpu(prev_bg->bg_next_group);
|
||||
|
||||
status = ocfs2_journal_access_gd(handle, alloc_inode, prev_bg_bh,
|
||||
status = ocfs2_journal_access_gd(handle, INODE_CACHE(alloc_inode),
|
||||
prev_bg_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
@@ -1121,8 +1122,8 @@ static int ocfs2_relink_block_group(handle_t *handle,
|
||||
goto out_rollback;
|
||||
}
|
||||
|
||||
status = ocfs2_journal_access_gd(handle, alloc_inode, bg_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
status = ocfs2_journal_access_gd(handle, INODE_CACHE(alloc_inode),
|
||||
bg_bh, OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto out_rollback;
|
||||
@@ -1136,8 +1137,8 @@ static int ocfs2_relink_block_group(handle_t *handle,
|
||||
goto out_rollback;
|
||||
}
|
||||
|
||||
status = ocfs2_journal_access_di(handle, alloc_inode, fe_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
status = ocfs2_journal_access_di(handle, INODE_CACHE(alloc_inode),
|
||||
fe_bh, OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto out_rollback;
|
||||
@@ -1288,7 +1289,7 @@ static int ocfs2_alloc_dinode_update_counts(struct inode *inode,
|
||||
struct ocfs2_dinode *di = (struct ocfs2_dinode *) di_bh->b_data;
|
||||
struct ocfs2_chain_list *cl = (struct ocfs2_chain_list *) &di->id2.i_chain;
|
||||
|
||||
ret = ocfs2_journal_access_di(handle, inode, di_bh,
|
||||
ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (ret < 0) {
|
||||
mlog_errno(ret);
|
||||
@@ -1461,7 +1462,7 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac,
|
||||
/* Ok, claim our bits now: set the info on dinode, chainlist
|
||||
* and then the group */
|
||||
status = ocfs2_journal_access_di(handle,
|
||||
alloc_inode,
|
||||
INODE_CACHE(alloc_inode),
|
||||
ac->ac_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
@@ -1907,8 +1908,8 @@ static inline int ocfs2_block_group_clear_bits(handle_t *handle,
|
||||
if (ocfs2_is_cluster_bitmap(alloc_inode))
|
||||
journal_type = OCFS2_JOURNAL_ACCESS_UNDO;
|
||||
|
||||
status = ocfs2_journal_access_gd(handle, alloc_inode, group_bh,
|
||||
journal_type);
|
||||
status = ocfs2_journal_access_gd(handle, INODE_CACHE(alloc_inode),
|
||||
group_bh, journal_type);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto bail;
|
||||
@@ -1993,8 +1994,8 @@ int ocfs2_free_suballoc_bits(handle_t *handle,
|
||||
goto bail;
|
||||
}
|
||||
|
||||
status = ocfs2_journal_access_di(handle, alloc_inode, alloc_bh,
|
||||
OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
status = ocfs2_journal_access_di(handle, INODE_CACHE(alloc_inode),
|
||||
alloc_bh, OCFS2_JOURNAL_ACCESS_WRITE);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto bail;
|
||||
|
Reference in New Issue
Block a user