aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_dir2_leaf.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_dir2_leaf.c')
-rw-r--r--fs/xfs/xfs_dir2_leaf.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/fs/xfs/xfs_dir2_leaf.c b/fs/xfs/xfs_dir2_leaf.c
index 7352e41d2aaa..84f4c9cfe95a 100644
--- a/fs/xfs/xfs_dir2_leaf.c
+++ b/fs/xfs/xfs_dir2_leaf.c
@@ -279,7 +279,7 @@ xfs_dir3_leafn_write_verify(
279 __write_verify(bp, XFS_DIR2_LEAFN_MAGIC); 279 __write_verify(bp, XFS_DIR2_LEAFN_MAGIC);
280} 280}
281 281
282static const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = { 282const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops = {
283 .verify_read = xfs_dir3_leaf1_read_verify, 283 .verify_read = xfs_dir3_leaf1_read_verify,
284 .verify_write = xfs_dir3_leaf1_write_verify, 284 .verify_write = xfs_dir3_leaf1_write_verify,
285}; 285};
@@ -297,8 +297,13 @@ xfs_dir3_leaf_read(
297 xfs_daddr_t mappedbno, 297 xfs_daddr_t mappedbno,
298 struct xfs_buf **bpp) 298 struct xfs_buf **bpp)
299{ 299{
300 return xfs_da_read_buf(tp, dp, fbno, mappedbno, bpp, 300 int err;
301
302 err = xfs_da_read_buf(tp, dp, fbno, mappedbno, bpp,
301 XFS_DATA_FORK, &xfs_dir3_leaf1_buf_ops); 303 XFS_DATA_FORK, &xfs_dir3_leaf1_buf_ops);
304 if (!err && tp)
305 xfs_trans_buf_set_type(tp, *bpp, XFS_BLF_DIR_LEAF1_BUF);
306 return err;
302} 307}
303 308
304int 309int
@@ -309,8 +314,13 @@ xfs_dir3_leafn_read(
309 xfs_daddr_t mappedbno, 314 xfs_daddr_t mappedbno,
310 struct xfs_buf **bpp) 315 struct xfs_buf **bpp)
311{ 316{
312 return xfs_da_read_buf(tp, dp, fbno, mappedbno, bpp, 317 int err;
318
319 err = xfs_da_read_buf(tp, dp, fbno, mappedbno, bpp,
313 XFS_DATA_FORK, &xfs_dir3_leafn_buf_ops); 320 XFS_DATA_FORK, &xfs_dir3_leafn_buf_ops);
321 if (!err && tp)
322 xfs_trans_buf_set_type(tp, *bpp, XFS_BLF_DIR_LEAFN_BUF);
323 return err;
314} 324}
315 325
316/* 326/*
@@ -319,6 +329,7 @@ xfs_dir3_leafn_read(
319static void 329static void
320xfs_dir3_leaf_init( 330xfs_dir3_leaf_init(
321 struct xfs_mount *mp, 331 struct xfs_mount *mp,
332 struct xfs_trans *tp,
322 struct xfs_buf *bp, 333 struct xfs_buf *bp,
323 xfs_ino_t owner, 334 xfs_ino_t owner,
324 __uint16_t type) 335 __uint16_t type)
@@ -353,8 +364,11 @@ xfs_dir3_leaf_init(
353 ltp = xfs_dir2_leaf_tail_p(mp, leaf); 364 ltp = xfs_dir2_leaf_tail_p(mp, leaf);
354 ltp->bestcount = 0; 365 ltp->bestcount = 0;
355 bp->b_ops = &xfs_dir3_leaf1_buf_ops; 366 bp->b_ops = &xfs_dir3_leaf1_buf_ops;
356 } else 367 xfs_trans_buf_set_type(tp, bp, XFS_BLF_DIR_LEAF1_BUF);
368 } else {
357 bp->b_ops = &xfs_dir3_leafn_buf_ops; 369 bp->b_ops = &xfs_dir3_leafn_buf_ops;
370 xfs_trans_buf_set_type(tp, bp, XFS_BLF_DIR_LEAFN_BUF);
371 }
358} 372}
359 373
360int 374int
@@ -379,7 +393,7 @@ xfs_dir3_leaf_get_buf(
379 if (error) 393 if (error)
380 return error; 394 return error;
381 395
382 xfs_dir3_leaf_init(mp, bp, dp->i_ino, magic); 396 xfs_dir3_leaf_init(mp, tp, bp, dp->i_ino, magic);
383 xfs_dir3_leaf_log_header(tp, bp); 397 xfs_dir3_leaf_log_header(tp, bp);
384 if (magic == XFS_DIR2_LEAF1_MAGIC) 398 if (magic == XFS_DIR2_LEAF1_MAGIC)
385 xfs_dir3_leaf_log_tail(tp, bp); 399 xfs_dir3_leaf_log_tail(tp, bp);
@@ -474,6 +488,7 @@ xfs_dir2_block_to_leaf(
474 * Fix up the block header, make it a data block. 488 * Fix up the block header, make it a data block.
475 */ 489 */
476 dbp->b_ops = &xfs_dir3_data_buf_ops; 490 dbp->b_ops = &xfs_dir3_data_buf_ops;
491 xfs_trans_buf_set_type(tp, dbp, XFS_BLF_DIR_DATA_BUF);
477 if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) 492 if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC))
478 hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); 493 hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC);
479 else 494 else
@@ -2182,6 +2197,7 @@ xfs_dir2_node_to_leaf(
2182 xfs_dir3_leaf_compact(args, &leafhdr, lbp); 2197 xfs_dir3_leaf_compact(args, &leafhdr, lbp);
2183 2198
2184 lbp->b_ops = &xfs_dir3_leaf1_buf_ops; 2199 lbp->b_ops = &xfs_dir3_leaf1_buf_ops;
2200 xfs_trans_buf_set_type(tp, lbp, XFS_BLF_DIR_LEAF1_BUF);
2185 leafhdr.magic = (leafhdr.magic == XFS_DIR2_LEAFN_MAGIC) 2201 leafhdr.magic = (leafhdr.magic == XFS_DIR2_LEAFN_MAGIC)
2186 ? XFS_DIR2_LEAF1_MAGIC 2202 ? XFS_DIR2_LEAF1_MAGIC
2187 : XFS_DIR3_LEAF1_MAGIC; 2203 : XFS_DIR3_LEAF1_MAGIC;