diff options
author | Joel Becker <joel.becker@oracle.com> | 2008-10-09 20:20:31 -0400 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-10-14 14:51:57 -0400 |
commit | 0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2 (patch) | |
tree | 057204016523ce0274d4a23ec02944075f084e8c | |
parent | 31d33073ca38603dea705dae45e094a64ca062d6 (diff) |
ocfs2: Simplify ocfs2_read_block()
More than 30 callers of ocfs2_read_block() pass exactly OCFS2_BH_CACHED.
Only six pass a different flag set. Rather than have every caller care,
let's make ocfs2_read_block() take no flags and always do a cached read.
The remaining six places can call ocfs2_read_blocks() directly.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
-rw-r--r-- | fs/ocfs2/alloc.c | 25 | ||||
-rw-r--r-- | fs/ocfs2/aops.c | 6 | ||||
-rw-r--r-- | fs/ocfs2/buffer_head_io.h | 7 | ||||
-rw-r--r-- | fs/ocfs2/dir.c | 9 | ||||
-rw-r--r-- | fs/ocfs2/dlmglue.c | 8 | ||||
-rw-r--r-- | fs/ocfs2/extent_map.c | 8 | ||||
-rw-r--r-- | fs/ocfs2/file.c | 7 | ||||
-rw-r--r-- | fs/ocfs2/inode.c | 4 | ||||
-rw-r--r-- | fs/ocfs2/journal.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/localalloc.c | 8 | ||||
-rw-r--r-- | fs/ocfs2/namei.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/resize.c | 3 | ||||
-rw-r--r-- | fs/ocfs2/slot_map.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/suballoc.c | 11 | ||||
-rw-r--r-- | fs/ocfs2/symlink.c | 5 | ||||
-rw-r--r-- | fs/ocfs2/xattr.c | 42 |
16 files changed, 55 insertions, 94 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index a164e09491f8..0cc2deb9394c 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c | |||
@@ -706,7 +706,7 @@ int ocfs2_num_free_extents(struct ocfs2_super *osb, | |||
706 | 706 | ||
707 | if (last_eb_blk) { | 707 | if (last_eb_blk) { |
708 | retval = ocfs2_read_block(inode, last_eb_blk, | 708 | retval = ocfs2_read_block(inode, last_eb_blk, |
709 | &eb_bh, OCFS2_BH_CACHED); | 709 | &eb_bh); |
710 | if (retval < 0) { | 710 | if (retval < 0) { |
711 | mlog_errno(retval); | 711 | mlog_errno(retval); |
712 | goto bail; | 712 | goto bail; |
@@ -1176,7 +1176,7 @@ static int ocfs2_find_branch_target(struct ocfs2_super *osb, | |||
1176 | brelse(bh); | 1176 | brelse(bh); |
1177 | bh = NULL; | 1177 | bh = NULL; |
1178 | 1178 | ||
1179 | status = ocfs2_read_block(inode, blkno, &bh, OCFS2_BH_CACHED); | 1179 | status = ocfs2_read_block(inode, blkno, &bh); |
1180 | if (status < 0) { | 1180 | if (status < 0) { |
1181 | mlog_errno(status); | 1181 | mlog_errno(status); |
1182 | goto bail; | 1182 | goto bail; |
@@ -1540,7 +1540,7 @@ static int __ocfs2_find_path(struct inode *inode, | |||
1540 | 1540 | ||
1541 | brelse(bh); | 1541 | brelse(bh); |
1542 | bh = NULL; | 1542 | bh = NULL; |
1543 | ret = ocfs2_read_block(inode, blkno, &bh, OCFS2_BH_CACHED); | 1543 | ret = ocfs2_read_block(inode, blkno, &bh); |
1544 | if (ret) { | 1544 | if (ret) { |
1545 | mlog_errno(ret); | 1545 | mlog_errno(ret); |
1546 | goto out; | 1546 | goto out; |
@@ -4294,9 +4294,7 @@ static int ocfs2_figure_insert_type(struct inode *inode, | |||
4294 | * ocfs2_figure_insert_type() and ocfs2_add_branch() | 4294 | * ocfs2_figure_insert_type() and ocfs2_add_branch() |
4295 | * may want it later. | 4295 | * may want it later. |
4296 | */ | 4296 | */ |
4297 | ret = ocfs2_read_block(inode, | 4297 | ret = ocfs2_read_block(inode, ocfs2_et_get_last_eb_blk(et), &bh); |
4298 | ocfs2_et_get_last_eb_blk(et), &bh, | ||
4299 | OCFS2_BH_CACHED); | ||
4300 | if (ret) { | 4298 | if (ret) { |
4301 | mlog_exit(ret); | 4299 | mlog_exit(ret); |
4302 | goto out; | 4300 | goto out; |
@@ -4762,9 +4760,8 @@ static int __ocfs2_mark_extent_written(struct inode *inode, | |||
4762 | if (path->p_tree_depth) { | 4760 | if (path->p_tree_depth) { |
4763 | struct ocfs2_extent_block *eb; | 4761 | struct ocfs2_extent_block *eb; |
4764 | 4762 | ||
4765 | ret = ocfs2_read_block(inode, | 4763 | ret = ocfs2_read_block(inode, ocfs2_et_get_last_eb_blk(et), |
4766 | ocfs2_et_get_last_eb_blk(et), | 4764 | &last_eb_bh); |
4767 | &last_eb_bh, OCFS2_BH_CACHED); | ||
4768 | if (ret) { | 4765 | if (ret) { |
4769 | mlog_exit(ret); | 4766 | mlog_exit(ret); |
4770 | goto out; | 4767 | goto out; |
@@ -4921,9 +4918,8 @@ static int ocfs2_split_tree(struct inode *inode, struct ocfs2_extent_tree *et, | |||
4921 | 4918 | ||
4922 | depth = path->p_tree_depth; | 4919 | depth = path->p_tree_depth; |
4923 | if (depth > 0) { | 4920 | if (depth > 0) { |
4924 | ret = ocfs2_read_block(inode, | 4921 | ret = ocfs2_read_block(inode, ocfs2_et_get_last_eb_blk(et), |
4925 | ocfs2_et_get_last_eb_blk(et), | 4922 | &last_eb_bh); |
4926 | &last_eb_bh, OCFS2_BH_CACHED); | ||
4927 | if (ret < 0) { | 4923 | if (ret < 0) { |
4928 | mlog_errno(ret); | 4924 | mlog_errno(ret); |
4929 | goto out; | 4925 | goto out; |
@@ -5590,8 +5586,7 @@ static int ocfs2_get_truncate_log_info(struct ocfs2_super *osb, | |||
5590 | goto bail; | 5586 | goto bail; |
5591 | } | 5587 | } |
5592 | 5588 | ||
5593 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &bh, | 5589 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &bh); |
5594 | OCFS2_BH_CACHED); | ||
5595 | if (status < 0) { | 5590 | if (status < 0) { |
5596 | iput(inode); | 5591 | iput(inode); |
5597 | mlog_errno(status); | 5592 | mlog_errno(status); |
@@ -6990,7 +6985,7 @@ int ocfs2_prepare_truncate(struct ocfs2_super *osb, | |||
6990 | 6985 | ||
6991 | if (fe->id2.i_list.l_tree_depth) { | 6986 | if (fe->id2.i_list.l_tree_depth) { |
6992 | status = ocfs2_read_block(inode, le64_to_cpu(fe->i_last_eb_blk), | 6987 | status = ocfs2_read_block(inode, le64_to_cpu(fe->i_last_eb_blk), |
6993 | &last_eb_bh, OCFS2_BH_CACHED); | 6988 | &last_eb_bh); |
6994 | if (status < 0) { | 6989 | if (status < 0) { |
6995 | mlog_errno(status); | 6990 | mlog_errno(status); |
6996 | goto bail; | 6991 | goto bail; |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index f232a0e3c30f..c22543b33420 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
@@ -68,8 +68,7 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock, | |||
68 | goto bail; | 68 | goto bail; |
69 | } | 69 | } |
70 | 70 | ||
71 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 71 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &bh); |
72 | &bh, OCFS2_BH_CACHED); | ||
73 | if (status < 0) { | 72 | if (status < 0) { |
74 | mlog_errno(status); | 73 | mlog_errno(status); |
75 | goto bail; | 74 | goto bail; |
@@ -263,8 +262,7 @@ static int ocfs2_readpage_inline(struct inode *inode, struct page *page) | |||
263 | BUG_ON(!PageLocked(page)); | 262 | BUG_ON(!PageLocked(page)); |
264 | BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL)); | 263 | BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL)); |
265 | 264 | ||
266 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &di_bh, | 265 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &di_bh); |
267 | OCFS2_BH_CACHED); | ||
268 | if (ret) { | 266 | if (ret) { |
269 | mlog_errno(ret); | 267 | mlog_errno(ret); |
270 | goto out; | 268 | goto out; |
diff --git a/fs/ocfs2/buffer_head_io.h b/fs/ocfs2/buffer_head_io.h index fd0d774ac356..a2ef9e5f8bfe 100644 --- a/fs/ocfs2/buffer_head_io.h +++ b/fs/ocfs2/buffer_head_io.h | |||
@@ -33,8 +33,7 @@ void ocfs2_end_buffer_io_sync(struct buffer_head *bh, | |||
33 | 33 | ||
34 | static inline int ocfs2_read_block(struct inode *inode, | 34 | static inline int ocfs2_read_block(struct inode *inode, |
35 | u64 off, | 35 | u64 off, |
36 | struct buffer_head **bh, | 36 | struct buffer_head **bh); |
37 | int flags); | ||
38 | 37 | ||
39 | int ocfs2_write_block(struct ocfs2_super *osb, | 38 | int ocfs2_write_block(struct ocfs2_super *osb, |
40 | struct buffer_head *bh, | 39 | struct buffer_head *bh, |
@@ -54,7 +53,7 @@ int ocfs2_write_super_or_backup(struct ocfs2_super *osb, | |||
54 | #define OCFS2_BH_READAHEAD 8 | 53 | #define OCFS2_BH_READAHEAD 8 |
55 | 54 | ||
56 | static inline int ocfs2_read_block(struct inode *inode, u64 off, | 55 | static inline int ocfs2_read_block(struct inode *inode, u64 off, |
57 | struct buffer_head **bh, int flags) | 56 | struct buffer_head **bh) |
58 | { | 57 | { |
59 | int status = 0; | 58 | int status = 0; |
60 | 59 | ||
@@ -64,7 +63,7 @@ static inline int ocfs2_read_block(struct inode *inode, u64 off, | |||
64 | goto bail; | 63 | goto bail; |
65 | } | 64 | } |
66 | 65 | ||
67 | status = ocfs2_read_blocks(inode, off, 1, bh, flags); | 66 | status = ocfs2_read_blocks(inode, off, 1, bh, OCFS2_BH_CACHED); |
68 | 67 | ||
69 | bail: | 68 | bail: |
70 | return status; | 69 | return status; |
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 828437ca91ba..459e6b8467dc 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c | |||
@@ -188,8 +188,7 @@ static struct buffer_head *ocfs2_find_entry_id(const char *name, | |||
188 | struct ocfs2_dinode *di; | 188 | struct ocfs2_dinode *di; |
189 | struct ocfs2_inline_data *data; | 189 | struct ocfs2_inline_data *data; |
190 | 190 | ||
191 | ret = ocfs2_read_block(dir, OCFS2_I(dir)->ip_blkno, &di_bh, | 191 | ret = ocfs2_read_block(dir, OCFS2_I(dir)->ip_blkno, &di_bh); |
192 | OCFS2_BH_CACHED); | ||
193 | if (ret) { | 192 | if (ret) { |
194 | mlog_errno(ret); | 193 | mlog_errno(ret); |
195 | goto out; | 194 | goto out; |
@@ -417,8 +416,7 @@ static inline int ocfs2_delete_entry_id(handle_t *handle, | |||
417 | struct ocfs2_dinode *di; | 416 | struct ocfs2_dinode *di; |
418 | struct ocfs2_inline_data *data; | 417 | struct ocfs2_inline_data *data; |
419 | 418 | ||
420 | ret = ocfs2_read_block(dir, OCFS2_I(dir)->ip_blkno, | 419 | ret = ocfs2_read_block(dir, OCFS2_I(dir)->ip_blkno, &di_bh); |
421 | &di_bh, OCFS2_BH_CACHED); | ||
422 | if (ret) { | 420 | if (ret) { |
423 | mlog_errno(ret); | 421 | mlog_errno(ret); |
424 | goto out; | 422 | goto out; |
@@ -596,8 +594,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode, | |||
596 | struct ocfs2_inline_data *data; | 594 | struct ocfs2_inline_data *data; |
597 | struct ocfs2_dir_entry *de; | 595 | struct ocfs2_dir_entry *de; |
598 | 596 | ||
599 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 597 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &di_bh); |
600 | &di_bh, OCFS2_BH_CACHED); | ||
601 | if (ret) { | 598 | if (ret) { |
602 | mlog(ML_ERROR, "Unable to read inode block for dir %llu\n", | 599 | mlog(ML_ERROR, "Unable to read inode block for dir %llu\n", |
603 | (unsigned long long)OCFS2_I(inode)->ip_blkno); | 600 | (unsigned long long)OCFS2_I(inode)->ip_blkno); |
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index 3b2cd0f87210..ec684426034b 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
@@ -2024,8 +2024,7 @@ static int ocfs2_inode_lock_update(struct inode *inode, | |||
2024 | } else { | 2024 | } else { |
2025 | /* Boo, we have to go to disk. */ | 2025 | /* Boo, we have to go to disk. */ |
2026 | /* read bh, cast, ocfs2_refresh_inode */ | 2026 | /* read bh, cast, ocfs2_refresh_inode */ |
2027 | status = ocfs2_read_block(inode, oi->ip_blkno, | 2027 | status = ocfs2_read_block(inode, oi->ip_blkno, bh); |
2028 | bh, OCFS2_BH_CACHED); | ||
2029 | if (status < 0) { | 2028 | if (status < 0) { |
2030 | mlog_errno(status); | 2029 | mlog_errno(status); |
2031 | goto bail_refresh; | 2030 | goto bail_refresh; |
@@ -2086,10 +2085,7 @@ static int ocfs2_assign_bh(struct inode *inode, | |||
2086 | return 0; | 2085 | return 0; |
2087 | } | 2086 | } |
2088 | 2087 | ||
2089 | status = ocfs2_read_block(inode, | 2088 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, ret_bh); |
2090 | OCFS2_I(inode)->ip_blkno, | ||
2091 | ret_bh, | ||
2092 | OCFS2_BH_CACHED); | ||
2093 | if (status < 0) | 2089 | if (status < 0) |
2094 | mlog_errno(status); | 2090 | mlog_errno(status); |
2095 | 2091 | ||
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index 5b482214bb75..2baedac58234 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c | |||
@@ -293,8 +293,7 @@ static int ocfs2_last_eb_is_empty(struct inode *inode, | |||
293 | struct ocfs2_extent_block *eb; | 293 | struct ocfs2_extent_block *eb; |
294 | struct ocfs2_extent_list *el; | 294 | struct ocfs2_extent_list *el; |
295 | 295 | ||
296 | ret = ocfs2_read_block(inode, last_eb_blk, | 296 | ret = ocfs2_read_block(inode, last_eb_blk, &eb_bh); |
297 | &eb_bh, OCFS2_BH_CACHED); | ||
298 | if (ret) { | 297 | if (ret) { |
299 | mlog_errno(ret); | 298 | mlog_errno(ret); |
300 | goto out; | 299 | goto out; |
@@ -384,7 +383,7 @@ static int ocfs2_figure_hole_clusters(struct inode *inode, | |||
384 | 383 | ||
385 | ret = ocfs2_read_block(inode, | 384 | ret = ocfs2_read_block(inode, |
386 | le64_to_cpu(eb->h_next_leaf_blk), | 385 | le64_to_cpu(eb->h_next_leaf_blk), |
387 | &next_eb_bh, OCFS2_BH_CACHED); | 386 | &next_eb_bh); |
388 | if (ret) { | 387 | if (ret) { |
389 | mlog_errno(ret); | 388 | mlog_errno(ret); |
390 | goto out; | 389 | goto out; |
@@ -631,8 +630,7 @@ int ocfs2_get_clusters(struct inode *inode, u32 v_cluster, | |||
631 | if (ret == 0) | 630 | if (ret == 0) |
632 | goto out; | 631 | goto out; |
633 | 632 | ||
634 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 633 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &di_bh); |
635 | &di_bh, OCFS2_BH_CACHED); | ||
636 | if (ret) { | 634 | if (ret) { |
637 | mlog_errno(ret); | 635 | mlog_errno(ret); |
638 | goto out; | 636 | goto out; |
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 7a809be54e84..8d3225a78073 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -545,8 +545,7 @@ static int __ocfs2_extend_allocation(struct inode *inode, u32 logical_start, | |||
545 | */ | 545 | */ |
546 | BUG_ON(mark_unwritten && !ocfs2_sparse_alloc(osb)); | 546 | BUG_ON(mark_unwritten && !ocfs2_sparse_alloc(osb)); |
547 | 547 | ||
548 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &bh, | 548 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, &bh); |
549 | OCFS2_BH_CACHED); | ||
550 | if (status < 0) { | 549 | if (status < 0) { |
551 | mlog_errno(status); | 550 | mlog_errno(status); |
552 | goto leave; | 551 | goto leave; |
@@ -1132,7 +1131,7 @@ static int ocfs2_write_remove_suid(struct inode *inode) | |||
1132 | struct buffer_head *bh = NULL; | 1131 | struct buffer_head *bh = NULL; |
1133 | struct ocfs2_inode_info *oi = OCFS2_I(inode); | 1132 | struct ocfs2_inode_info *oi = OCFS2_I(inode); |
1134 | 1133 | ||
1135 | ret = ocfs2_read_block(inode, oi->ip_blkno, &bh, OCFS2_BH_CACHED); | 1134 | ret = ocfs2_read_block(inode, oi->ip_blkno, &bh); |
1136 | if (ret < 0) { | 1135 | if (ret < 0) { |
1137 | mlog_errno(ret); | 1136 | mlog_errno(ret); |
1138 | goto out; | 1137 | goto out; |
@@ -1159,7 +1158,7 @@ static int ocfs2_allocate_unwritten_extents(struct inode *inode, | |||
1159 | 1158 | ||
1160 | if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { | 1159 | if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { |
1161 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 1160 | ret = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, |
1162 | &di_bh, OCFS2_BH_CACHED); | 1161 | &di_bh); |
1163 | if (ret) { | 1162 | if (ret) { |
1164 | mlog_errno(ret); | 1163 | mlog_errno(ret); |
1165 | goto out; | 1164 | goto out; |
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 6ec31b92a47f..c5ee9e3cf80b 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c | |||
@@ -461,7 +461,7 @@ static int ocfs2_read_locked_inode(struct inode *inode, | |||
461 | } | 461 | } |
462 | 462 | ||
463 | if (can_lock) | 463 | if (can_lock) |
464 | status = ocfs2_read_block(inode, args->fi_blkno, &bh, 0); | 464 | status = ocfs2_read_blocks(inode, args->fi_blkno, 1, &bh, 0); |
465 | else | 465 | else |
466 | status = ocfs2_read_blocks_sync(osb, args->fi_blkno, 1, &bh); | 466 | status = ocfs2_read_blocks_sync(osb, args->fi_blkno, 1, &bh); |
467 | if (status < 0) { | 467 | if (status < 0) { |
@@ -1165,7 +1165,7 @@ struct buffer_head *ocfs2_bread(struct inode *inode, | |||
1165 | goto fail; | 1165 | goto fail; |
1166 | } | 1166 | } |
1167 | 1167 | ||
1168 | tmperr = ocfs2_read_block(inode, p_blkno, &bh, readflags); | 1168 | tmperr = ocfs2_read_blocks(inode, p_blkno, 1, &bh, readflags); |
1169 | if (tmperr < 0) | 1169 | if (tmperr < 0) |
1170 | goto fail; | 1170 | goto fail; |
1171 | 1171 | ||
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c index 9854fb7315b6..d161fe5e3bde 100644 --- a/fs/ocfs2/journal.c +++ b/fs/ocfs2/journal.c | |||
@@ -1134,7 +1134,7 @@ static int ocfs2_read_journal_inode(struct ocfs2_super *osb, | |||
1134 | } | 1134 | } |
1135 | SET_INODE_JOURNAL(inode); | 1135 | SET_INODE_JOURNAL(inode); |
1136 | 1136 | ||
1137 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, bh, 0); | 1137 | status = ocfs2_read_blocks(inode, OCFS2_I(inode)->ip_blkno, 1, bh, 0); |
1138 | if (status < 0) { | 1138 | if (status < 0) { |
1139 | mlog_errno(status); | 1139 | mlog_errno(status); |
1140 | goto bail; | 1140 | goto bail; |
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c index b77b67bb2776..3ea740d15feb 100644 --- a/fs/ocfs2/localalloc.c +++ b/fs/ocfs2/localalloc.c | |||
@@ -248,8 +248,8 @@ int ocfs2_load_local_alloc(struct ocfs2_super *osb) | |||
248 | goto bail; | 248 | goto bail; |
249 | } | 249 | } |
250 | 250 | ||
251 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 251 | status = ocfs2_read_blocks(inode, OCFS2_I(inode)->ip_blkno, 1, |
252 | &alloc_bh, 0); | 252 | &alloc_bh, 0); |
253 | if (status < 0) { | 253 | if (status < 0) { |
254 | mlog_errno(status); | 254 | mlog_errno(status); |
255 | goto bail; | 255 | goto bail; |
@@ -459,8 +459,8 @@ int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb, | |||
459 | 459 | ||
460 | mutex_lock(&inode->i_mutex); | 460 | mutex_lock(&inode->i_mutex); |
461 | 461 | ||
462 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, | 462 | status = ocfs2_read_blocks(inode, OCFS2_I(inode)->ip_blkno, 1, |
463 | &alloc_bh, 0); | 463 | &alloc_bh, 0); |
464 | if (status < 0) { | 464 | if (status < 0) { |
465 | mlog_errno(status); | 465 | mlog_errno(status); |
466 | goto bail; | 466 | goto bail; |
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index e5fc9345dd36..485a6aa0ad39 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c | |||
@@ -1754,7 +1754,7 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb, | |||
1754 | 1754 | ||
1755 | status = ocfs2_read_block(orphan_dir_inode, | 1755 | status = ocfs2_read_block(orphan_dir_inode, |
1756 | OCFS2_I(orphan_dir_inode)->ip_blkno, | 1756 | OCFS2_I(orphan_dir_inode)->ip_blkno, |
1757 | &orphan_dir_bh, OCFS2_BH_CACHED); | 1757 | &orphan_dir_bh); |
1758 | if (status < 0) { | 1758 | if (status < 0) { |
1759 | mlog_errno(status); | 1759 | mlog_errno(status); |
1760 | goto leave; | 1760 | goto leave; |
diff --git a/fs/ocfs2/resize.c b/fs/ocfs2/resize.c index 92dcd9350560..ffd48db229a7 100644 --- a/fs/ocfs2/resize.c +++ b/fs/ocfs2/resize.c | |||
@@ -332,8 +332,7 @@ int ocfs2_group_extend(struct inode * inode, int new_clusters) | |||
332 | lgd_blkno = ocfs2_which_cluster_group(main_bm_inode, | 332 | lgd_blkno = ocfs2_which_cluster_group(main_bm_inode, |
333 | first_new_cluster - 1); | 333 | first_new_cluster - 1); |
334 | 334 | ||
335 | ret = ocfs2_read_block(main_bm_inode, lgd_blkno, &group_bh, | 335 | ret = ocfs2_read_block(main_bm_inode, lgd_blkno, &group_bh); |
336 | OCFS2_BH_CACHED); | ||
337 | if (ret < 0) { | 336 | if (ret < 0) { |
338 | mlog_errno(ret); | 337 | mlog_errno(ret); |
339 | goto out_unlock; | 338 | goto out_unlock; |
diff --git a/fs/ocfs2/slot_map.c b/fs/ocfs2/slot_map.c index 82d986bff7fe..357d3fe18c3f 100644 --- a/fs/ocfs2/slot_map.c +++ b/fs/ocfs2/slot_map.c | |||
@@ -403,7 +403,7 @@ static int ocfs2_map_slot_buffers(struct ocfs2_super *osb, | |||
403 | (unsigned long long)blkno); | 403 | (unsigned long long)blkno); |
404 | 404 | ||
405 | bh = NULL; /* Acquire a fresh bh */ | 405 | bh = NULL; /* Acquire a fresh bh */ |
406 | status = ocfs2_read_block(si->si_inode, blkno, &bh, 0); | 406 | status = ocfs2_read_blocks(si->si_inode, blkno, 1, &bh, 0); |
407 | if (status < 0) { | 407 | if (status < 0) { |
408 | mlog_errno(status); | 408 | mlog_errno(status); |
409 | goto bail; | 409 | goto bail; |
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c index f0056b7d4353..c5ff18b46b57 100644 --- a/fs/ocfs2/suballoc.c +++ b/fs/ocfs2/suballoc.c | |||
@@ -1172,8 +1172,7 @@ static int ocfs2_search_one_group(struct ocfs2_alloc_context *ac, | |||
1172 | struct ocfs2_group_desc *gd; | 1172 | struct ocfs2_group_desc *gd; |
1173 | struct inode *alloc_inode = ac->ac_inode; | 1173 | struct inode *alloc_inode = ac->ac_inode; |
1174 | 1174 | ||
1175 | ret = ocfs2_read_block(alloc_inode, gd_blkno, | 1175 | ret = ocfs2_read_block(alloc_inode, gd_blkno, &group_bh); |
1176 | &group_bh, OCFS2_BH_CACHED); | ||
1177 | if (ret < 0) { | 1176 | if (ret < 0) { |
1178 | mlog_errno(ret); | 1177 | mlog_errno(ret); |
1179 | return ret; | 1178 | return ret; |
@@ -1244,7 +1243,7 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1244 | 1243 | ||
1245 | status = ocfs2_read_block(alloc_inode, | 1244 | status = ocfs2_read_block(alloc_inode, |
1246 | le64_to_cpu(cl->cl_recs[chain].c_blkno), | 1245 | le64_to_cpu(cl->cl_recs[chain].c_blkno), |
1247 | &group_bh, OCFS2_BH_CACHED); | 1246 | &group_bh); |
1248 | if (status < 0) { | 1247 | if (status < 0) { |
1249 | mlog_errno(status); | 1248 | mlog_errno(status); |
1250 | goto bail; | 1249 | goto bail; |
@@ -1273,8 +1272,7 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1273 | prev_group_bh = group_bh; | 1272 | prev_group_bh = group_bh; |
1274 | group_bh = NULL; | 1273 | group_bh = NULL; |
1275 | status = ocfs2_read_block(alloc_inode, | 1274 | status = ocfs2_read_block(alloc_inode, |
1276 | next_group, &group_bh, | 1275 | next_group, &group_bh); |
1277 | OCFS2_BH_CACHED); | ||
1278 | if (status < 0) { | 1276 | if (status < 0) { |
1279 | mlog_errno(status); | 1277 | mlog_errno(status); |
1280 | goto bail; | 1278 | goto bail; |
@@ -1795,8 +1793,7 @@ int ocfs2_free_suballoc_bits(handle_t *handle, | |||
1795 | (unsigned long long)OCFS2_I(alloc_inode)->ip_blkno, count, | 1793 | (unsigned long long)OCFS2_I(alloc_inode)->ip_blkno, count, |
1796 | (unsigned long long)bg_blkno, start_bit); | 1794 | (unsigned long long)bg_blkno, start_bit); |
1797 | 1795 | ||
1798 | status = ocfs2_read_block(alloc_inode, bg_blkno, &group_bh, | 1796 | status = ocfs2_read_block(alloc_inode, bg_blkno, &group_bh); |
1799 | OCFS2_BH_CACHED); | ||
1800 | if (status < 0) { | 1797 | if (status < 0) { |
1801 | mlog_errno(status); | 1798 | mlog_errno(status); |
1802 | goto bail; | 1799 | goto bail; |
diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c index 8788dc26316d..cbd03dfdc7b9 100644 --- a/fs/ocfs2/symlink.c +++ b/fs/ocfs2/symlink.c | |||
@@ -84,10 +84,7 @@ static char *ocfs2_fast_symlink_getlink(struct inode *inode, | |||
84 | 84 | ||
85 | mlog_entry_void(); | 85 | mlog_entry_void(); |
86 | 86 | ||
87 | status = ocfs2_read_block(inode, | 87 | status = ocfs2_read_block(inode, OCFS2_I(inode)->ip_blkno, bh); |
88 | OCFS2_I(inode)->ip_blkno, | ||
89 | bh, | ||
90 | OCFS2_BH_CACHED); | ||
91 | if (status < 0) { | 88 | if (status < 0) { |
92 | mlog_errno(status); | 89 | mlog_errno(status); |
93 | link = ERR_PTR(status); | 90 | link = ERR_PTR(status); |
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 63037bd7892f..c25780a70dfd 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c | |||
@@ -537,9 +537,7 @@ static int ocfs2_xattr_block_list(struct inode *inode, | |||
537 | if (!di->i_xattr_loc) | 537 | if (!di->i_xattr_loc) |
538 | return ret; | 538 | return ret; |
539 | 539 | ||
540 | ret = ocfs2_read_block(inode, | 540 | ret = ocfs2_read_block(inode, le64_to_cpu(di->i_xattr_loc), &blk_bh); |
541 | le64_to_cpu(di->i_xattr_loc), | ||
542 | &blk_bh, OCFS2_BH_CACHED); | ||
543 | if (ret < 0) { | 541 | if (ret < 0) { |
544 | mlog_errno(ret); | 542 | mlog_errno(ret); |
545 | return ret; | 543 | return ret; |
@@ -672,8 +670,7 @@ static int ocfs2_xattr_get_value_outside(struct inode *inode, | |||
672 | blkno = ocfs2_clusters_to_blocks(inode->i_sb, p_cluster); | 670 | blkno = ocfs2_clusters_to_blocks(inode->i_sb, p_cluster); |
673 | /* Copy ocfs2_xattr_value */ | 671 | /* Copy ocfs2_xattr_value */ |
674 | for (i = 0; i < num_clusters * bpc; i++, blkno++) { | 672 | for (i = 0; i < num_clusters * bpc; i++, blkno++) { |
675 | ret = ocfs2_read_block(inode, blkno, | 673 | ret = ocfs2_read_block(inode, blkno, &bh); |
676 | &bh, OCFS2_BH_CACHED); | ||
677 | if (ret) { | 674 | if (ret) { |
678 | mlog_errno(ret); | 675 | mlog_errno(ret); |
679 | goto out; | 676 | goto out; |
@@ -764,9 +761,7 @@ static int ocfs2_xattr_block_get(struct inode *inode, | |||
764 | 761 | ||
765 | memset(&xs->bucket, 0, sizeof(xs->bucket)); | 762 | memset(&xs->bucket, 0, sizeof(xs->bucket)); |
766 | 763 | ||
767 | ret = ocfs2_read_block(inode, | 764 | ret = ocfs2_read_block(inode, le64_to_cpu(di->i_xattr_loc), &blk_bh); |
768 | le64_to_cpu(di->i_xattr_loc), | ||
769 | &blk_bh, OCFS2_BH_CACHED); | ||
770 | if (ret < 0) { | 765 | if (ret < 0) { |
771 | mlog_errno(ret); | 766 | mlog_errno(ret); |
772 | return ret; | 767 | return ret; |
@@ -922,8 +917,7 @@ static int __ocfs2_xattr_set_value_outside(struct inode *inode, | |||
922 | blkno = ocfs2_clusters_to_blocks(inode->i_sb, p_cluster); | 917 | blkno = ocfs2_clusters_to_blocks(inode->i_sb, p_cluster); |
923 | 918 | ||
924 | for (i = 0; i < num_clusters * bpc; i++, blkno++) { | 919 | for (i = 0; i < num_clusters * bpc; i++, blkno++) { |
925 | ret = ocfs2_read_block(inode, blkno, | 920 | ret = ocfs2_read_block(inode, blkno, &bh); |
926 | &bh, OCFS2_BH_CACHED); | ||
927 | if (ret) { | 921 | if (ret) { |
928 | mlog_errno(ret); | 922 | mlog_errno(ret); |
929 | goto out_commit; | 923 | goto out_commit; |
@@ -1514,8 +1508,7 @@ static int ocfs2_xattr_free_block(struct inode *inode, | |||
1514 | u64 blk, bg_blkno; | 1508 | u64 blk, bg_blkno; |
1515 | u16 bit; | 1509 | u16 bit; |
1516 | 1510 | ||
1517 | ret = ocfs2_read_block(inode, block, &blk_bh, | 1511 | ret = ocfs2_read_block(inode, block, &blk_bh); |
1518 | OCFS2_BH_CACHED); | ||
1519 | if (ret < 0) { | 1512 | if (ret < 0) { |
1520 | mlog_errno(ret); | 1513 | mlog_errno(ret); |
1521 | goto out; | 1514 | goto out; |
@@ -1773,9 +1766,7 @@ static int ocfs2_xattr_block_find(struct inode *inode, | |||
1773 | if (!di->i_xattr_loc) | 1766 | if (!di->i_xattr_loc) |
1774 | return ret; | 1767 | return ret; |
1775 | 1768 | ||
1776 | ret = ocfs2_read_block(inode, | 1769 | ret = ocfs2_read_block(inode, le64_to_cpu(di->i_xattr_loc), &blk_bh); |
1777 | le64_to_cpu(di->i_xattr_loc), | ||
1778 | &blk_bh, OCFS2_BH_CACHED); | ||
1779 | if (ret < 0) { | 1770 | if (ret < 0) { |
1780 | mlog_errno(ret); | 1771 | mlog_errno(ret); |
1781 | return ret; | 1772 | return ret; |
@@ -2216,9 +2207,8 @@ static int ocfs2_find_xe_in_bucket(struct inode *inode, | |||
2216 | break; | 2207 | break; |
2217 | } | 2208 | } |
2218 | 2209 | ||
2219 | ret = ocfs2_read_block(inode, | 2210 | ret = ocfs2_read_block(inode, header_bh->b_blocknr + block_off, |
2220 | header_bh->b_blocknr + block_off, | 2211 | &name_bh); |
2221 | &name_bh, OCFS2_BH_CACHED); | ||
2222 | if (ret) { | 2212 | if (ret) { |
2223 | mlog_errno(ret); | 2213 | mlog_errno(ret); |
2224 | break; | 2214 | break; |
@@ -2269,7 +2259,7 @@ static int ocfs2_xattr_bucket_find(struct inode *inode, | |||
2269 | u32 last_hash; | 2259 | u32 last_hash; |
2270 | u64 blkno; | 2260 | u64 blkno; |
2271 | 2261 | ||
2272 | ret = ocfs2_read_block(inode, p_blkno, &bh, OCFS2_BH_CACHED); | 2262 | ret = ocfs2_read_block(inode, p_blkno, &bh); |
2273 | if (ret) { | 2263 | if (ret) { |
2274 | mlog_errno(ret); | 2264 | mlog_errno(ret); |
2275 | goto out; | 2265 | goto out; |
@@ -2285,7 +2275,7 @@ static int ocfs2_xattr_bucket_find(struct inode *inode, | |||
2285 | 2275 | ||
2286 | blkno = p_blkno + bucket * blk_per_bucket; | 2276 | blkno = p_blkno + bucket * blk_per_bucket; |
2287 | 2277 | ||
2288 | ret = ocfs2_read_block(inode, blkno, &bh, OCFS2_BH_CACHED); | 2278 | ret = ocfs2_read_block(inode, blkno, &bh); |
2289 | if (ret) { | 2279 | if (ret) { |
2290 | mlog_errno(ret); | 2280 | mlog_errno(ret); |
2291 | goto out; | 2281 | goto out; |
@@ -2898,7 +2888,6 @@ static int ocfs2_defrag_xattr_bucket(struct inode *inode, | |||
2898 | u64 blkno = bucket->bhs[0]->b_blocknr; | 2888 | u64 blkno = bucket->bhs[0]->b_blocknr; |
2899 | u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb); | 2889 | u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb); |
2900 | u16 xh_free_start; | 2890 | u16 xh_free_start; |
2901 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | ||
2902 | size_t blocksize = inode->i_sb->s_blocksize; | 2891 | size_t blocksize = inode->i_sb->s_blocksize; |
2903 | handle_t *handle; | 2892 | handle_t *handle; |
2904 | struct buffer_head **bhs; | 2893 | struct buffer_head **bhs; |
@@ -3110,8 +3099,7 @@ static int ocfs2_mv_xattr_bucket_cross_cluster(struct inode *inode, | |||
3110 | goto out; | 3099 | goto out; |
3111 | } | 3100 | } |
3112 | 3101 | ||
3113 | ret = ocfs2_read_block(inode, prev_blkno, | 3102 | ret = ocfs2_read_block(inode, prev_blkno, &old_bh); |
3114 | &old_bh, OCFS2_BH_CACHED); | ||
3115 | if (ret < 0) { | 3103 | if (ret < 0) { |
3116 | mlog_errno(ret); | 3104 | mlog_errno(ret); |
3117 | brelse(new_bh); | 3105 | brelse(new_bh); |
@@ -3481,7 +3469,7 @@ static int ocfs2_cp_xattr_cluster(struct inode *inode, | |||
3481 | ocfs2_journal_dirty(handle, first_bh); | 3469 | ocfs2_journal_dirty(handle, first_bh); |
3482 | 3470 | ||
3483 | /* update the new bucket header. */ | 3471 | /* update the new bucket header. */ |
3484 | ret = ocfs2_read_block(inode, to_blk_start, &bh, OCFS2_BH_CACHED); | 3472 | ret = ocfs2_read_block(inode, to_blk_start, &bh); |
3485 | if (ret < 0) { | 3473 | if (ret < 0) { |
3486 | mlog_errno(ret); | 3474 | mlog_errno(ret); |
3487 | goto out; | 3475 | goto out; |
@@ -3868,8 +3856,7 @@ static int ocfs2_add_new_xattr_bucket(struct inode *inode, | |||
3868 | goto out; | 3856 | goto out; |
3869 | } | 3857 | } |
3870 | 3858 | ||
3871 | ret = ocfs2_read_block(inode, p_blkno, | 3859 | ret = ocfs2_read_block(inode, p_blkno, &first_bh); |
3872 | &first_bh, OCFS2_BH_CACHED); | ||
3873 | if (ret) { | 3860 | if (ret) { |
3874 | mlog_errno(ret); | 3861 | mlog_errno(ret); |
3875 | goto out; | 3862 | goto out; |
@@ -4220,8 +4207,7 @@ static int ocfs2_xattr_bucket_value_truncate(struct inode *inode, | |||
4220 | BUG_ON(value_blk != (offset + OCFS2_XATTR_ROOT_SIZE - 1) / blocksize); | 4207 | BUG_ON(value_blk != (offset + OCFS2_XATTR_ROOT_SIZE - 1) / blocksize); |
4221 | value_blk += header_bh->b_blocknr; | 4208 | value_blk += header_bh->b_blocknr; |
4222 | 4209 | ||
4223 | ret = ocfs2_read_block(inode, value_blk, | 4210 | ret = ocfs2_read_block(inode, value_blk, &value_bh); |
4224 | &value_bh, OCFS2_BH_CACHED); | ||
4225 | if (ret) { | 4211 | if (ret) { |
4226 | mlog_errno(ret); | 4212 | mlog_errno(ret); |
4227 | goto out; | 4213 | goto out; |