diff options
Diffstat (limited to 'fs/xfs/xfs_attr_leaf.c')
-rw-r--r-- | fs/xfs/xfs_attr_leaf.c | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/fs/xfs/xfs_attr_leaf.c b/fs/xfs/xfs_attr_leaf.c index afdc8911637d..a90ce74fc256 100644 --- a/fs/xfs/xfs_attr_leaf.c +++ b/fs/xfs/xfs_attr_leaf.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include "xfs_attr.h" | 42 | #include "xfs_attr.h" |
43 | #include "xfs_attr_leaf.h" | 43 | #include "xfs_attr_leaf.h" |
44 | #include "xfs_error.h" | 44 | #include "xfs_error.h" |
45 | #include "xfs_trace.h" | ||
45 | 46 | ||
46 | /* | 47 | /* |
47 | * xfs_attr_leaf.c | 48 | * xfs_attr_leaf.c |
@@ -98,7 +99,7 @@ STATIC int xfs_attr_leaf_entsize(xfs_attr_leafblock_t *leaf, int index); | |||
98 | * If namespace bits don't match return 0. | 99 | * If namespace bits don't match return 0. |
99 | * If all match then return 1. | 100 | * If all match then return 1. |
100 | */ | 101 | */ |
101 | STATIC_INLINE int | 102 | STATIC int |
102 | xfs_attr_namesp_match(int arg_flags, int ondisk_flags) | 103 | xfs_attr_namesp_match(int arg_flags, int ondisk_flags) |
103 | { | 104 | { |
104 | return XFS_ATTR_NSP_ONDISK(ondisk_flags) == XFS_ATTR_NSP_ARGS_TO_ONDISK(arg_flags); | 105 | return XFS_ATTR_NSP_ONDISK(ondisk_flags) == XFS_ATTR_NSP_ARGS_TO_ONDISK(arg_flags); |
@@ -520,11 +521,11 @@ xfs_attr_shortform_to_leaf(xfs_da_args_t *args) | |||
520 | 521 | ||
521 | sfe = &sf->list[0]; | 522 | sfe = &sf->list[0]; |
522 | for (i = 0; i < sf->hdr.count; i++) { | 523 | for (i = 0; i < sf->hdr.count; i++) { |
523 | nargs.name = (char *)sfe->nameval; | 524 | nargs.name = sfe->nameval; |
524 | nargs.namelen = sfe->namelen; | 525 | nargs.namelen = sfe->namelen; |
525 | nargs.value = (char *)&sfe->nameval[nargs.namelen]; | 526 | nargs.value = &sfe->nameval[nargs.namelen]; |
526 | nargs.valuelen = sfe->valuelen; | 527 | nargs.valuelen = sfe->valuelen; |
527 | nargs.hashval = xfs_da_hashname((char *)sfe->nameval, | 528 | nargs.hashval = xfs_da_hashname(sfe->nameval, |
528 | sfe->namelen); | 529 | sfe->namelen); |
529 | nargs.flags = XFS_ATTR_NSP_ONDISK_TO_ARGS(sfe->flags); | 530 | nargs.flags = XFS_ATTR_NSP_ONDISK_TO_ARGS(sfe->flags); |
530 | error = xfs_attr_leaf_lookup_int(bp, &nargs); /* set a->index */ | 531 | error = xfs_attr_leaf_lookup_int(bp, &nargs); /* set a->index */ |
@@ -594,7 +595,7 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
594 | cursor = context->cursor; | 595 | cursor = context->cursor; |
595 | ASSERT(cursor != NULL); | 596 | ASSERT(cursor != NULL); |
596 | 597 | ||
597 | xfs_attr_trace_l_c("sf start", context); | 598 | trace_xfs_attr_list_sf(context); |
598 | 599 | ||
599 | /* | 600 | /* |
600 | * If the buffer is large enough and the cursor is at the start, | 601 | * If the buffer is large enough and the cursor is at the start, |
@@ -611,10 +612,10 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
611 | for (i = 0, sfe = &sf->list[0]; i < sf->hdr.count; i++) { | 612 | for (i = 0, sfe = &sf->list[0]; i < sf->hdr.count; i++) { |
612 | error = context->put_listent(context, | 613 | error = context->put_listent(context, |
613 | sfe->flags, | 614 | sfe->flags, |
614 | (char *)sfe->nameval, | 615 | sfe->nameval, |
615 | (int)sfe->namelen, | 616 | (int)sfe->namelen, |
616 | (int)sfe->valuelen, | 617 | (int)sfe->valuelen, |
617 | (char*)&sfe->nameval[sfe->namelen]); | 618 | &sfe->nameval[sfe->namelen]); |
618 | 619 | ||
619 | /* | 620 | /* |
620 | * Either search callback finished early or | 621 | * Either search callback finished early or |
@@ -627,7 +628,7 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
627 | return error; | 628 | return error; |
628 | sfe = XFS_ATTR_SF_NEXTENTRY(sfe); | 629 | sfe = XFS_ATTR_SF_NEXTENTRY(sfe); |
629 | } | 630 | } |
630 | xfs_attr_trace_l_c("sf big-gulp", context); | 631 | trace_xfs_attr_list_sf_all(context); |
631 | return(0); | 632 | return(0); |
632 | } | 633 | } |
633 | 634 | ||
@@ -653,14 +654,13 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
653 | XFS_CORRUPTION_ERROR("xfs_attr_shortform_list", | 654 | XFS_CORRUPTION_ERROR("xfs_attr_shortform_list", |
654 | XFS_ERRLEVEL_LOW, | 655 | XFS_ERRLEVEL_LOW, |
655 | context->dp->i_mount, sfe); | 656 | context->dp->i_mount, sfe); |
656 | xfs_attr_trace_l_c("sf corrupted", context); | ||
657 | kmem_free(sbuf); | 657 | kmem_free(sbuf); |
658 | return XFS_ERROR(EFSCORRUPTED); | 658 | return XFS_ERROR(EFSCORRUPTED); |
659 | } | 659 | } |
660 | 660 | ||
661 | sbp->entno = i; | 661 | sbp->entno = i; |
662 | sbp->hash = xfs_da_hashname((char *)sfe->nameval, sfe->namelen); | 662 | sbp->hash = xfs_da_hashname(sfe->nameval, sfe->namelen); |
663 | sbp->name = (char *)sfe->nameval; | 663 | sbp->name = sfe->nameval; |
664 | sbp->namelen = sfe->namelen; | 664 | sbp->namelen = sfe->namelen; |
665 | /* These are bytes, and both on-disk, don't endian-flip */ | 665 | /* These are bytes, and both on-disk, don't endian-flip */ |
666 | sbp->valuelen = sfe->valuelen; | 666 | sbp->valuelen = sfe->valuelen; |
@@ -693,7 +693,6 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
693 | } | 693 | } |
694 | if (i == nsbuf) { | 694 | if (i == nsbuf) { |
695 | kmem_free(sbuf); | 695 | kmem_free(sbuf); |
696 | xfs_attr_trace_l_c("blk end", context); | ||
697 | return(0); | 696 | return(0); |
698 | } | 697 | } |
699 | 698 | ||
@@ -719,7 +718,6 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context) | |||
719 | } | 718 | } |
720 | 719 | ||
721 | kmem_free(sbuf); | 720 | kmem_free(sbuf); |
722 | xfs_attr_trace_l_c("sf E-O-F", context); | ||
723 | return(0); | 721 | return(0); |
724 | } | 722 | } |
725 | 723 | ||
@@ -820,9 +818,9 @@ xfs_attr_leaf_to_shortform(xfs_dabuf_t *bp, xfs_da_args_t *args, int forkoff) | |||
820 | continue; | 818 | continue; |
821 | ASSERT(entry->flags & XFS_ATTR_LOCAL); | 819 | ASSERT(entry->flags & XFS_ATTR_LOCAL); |
822 | name_loc = xfs_attr_leaf_name_local(leaf, i); | 820 | name_loc = xfs_attr_leaf_name_local(leaf, i); |
823 | nargs.name = (char *)name_loc->nameval; | 821 | nargs.name = name_loc->nameval; |
824 | nargs.namelen = name_loc->namelen; | 822 | nargs.namelen = name_loc->namelen; |
825 | nargs.value = (char *)&name_loc->nameval[nargs.namelen]; | 823 | nargs.value = &name_loc->nameval[nargs.namelen]; |
826 | nargs.valuelen = be16_to_cpu(name_loc->valuelen); | 824 | nargs.valuelen = be16_to_cpu(name_loc->valuelen); |
827 | nargs.hashval = be32_to_cpu(entry->hashval); | 825 | nargs.hashval = be32_to_cpu(entry->hashval); |
828 | nargs.flags = XFS_ATTR_NSP_ONDISK_TO_ARGS(entry->flags); | 826 | nargs.flags = XFS_ATTR_NSP_ONDISK_TO_ARGS(entry->flags); |
@@ -2323,7 +2321,7 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2323 | cursor = context->cursor; | 2321 | cursor = context->cursor; |
2324 | cursor->initted = 1; | 2322 | cursor->initted = 1; |
2325 | 2323 | ||
2326 | xfs_attr_trace_l_cl("blk start", context, leaf); | 2324 | trace_xfs_attr_list_leaf(context); |
2327 | 2325 | ||
2328 | /* | 2326 | /* |
2329 | * Re-find our place in the leaf block if this is a new syscall. | 2327 | * Re-find our place in the leaf block if this is a new syscall. |
@@ -2344,7 +2342,7 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2344 | } | 2342 | } |
2345 | } | 2343 | } |
2346 | if (i == be16_to_cpu(leaf->hdr.count)) { | 2344 | if (i == be16_to_cpu(leaf->hdr.count)) { |
2347 | xfs_attr_trace_l_c("not found", context); | 2345 | trace_xfs_attr_list_notfound(context); |
2348 | return(0); | 2346 | return(0); |
2349 | } | 2347 | } |
2350 | } else { | 2348 | } else { |
@@ -2372,10 +2370,10 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2372 | 2370 | ||
2373 | retval = context->put_listent(context, | 2371 | retval = context->put_listent(context, |
2374 | entry->flags, | 2372 | entry->flags, |
2375 | (char *)name_loc->nameval, | 2373 | name_loc->nameval, |
2376 | (int)name_loc->namelen, | 2374 | (int)name_loc->namelen, |
2377 | be16_to_cpu(name_loc->valuelen), | 2375 | be16_to_cpu(name_loc->valuelen), |
2378 | (char *)&name_loc->nameval[name_loc->namelen]); | 2376 | &name_loc->nameval[name_loc->namelen]); |
2379 | if (retval) | 2377 | if (retval) |
2380 | return retval; | 2378 | return retval; |
2381 | } else { | 2379 | } else { |
@@ -2399,15 +2397,15 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2399 | return retval; | 2397 | return retval; |
2400 | retval = context->put_listent(context, | 2398 | retval = context->put_listent(context, |
2401 | entry->flags, | 2399 | entry->flags, |
2402 | (char *)name_rmt->name, | 2400 | name_rmt->name, |
2403 | (int)name_rmt->namelen, | 2401 | (int)name_rmt->namelen, |
2404 | valuelen, | 2402 | valuelen, |
2405 | (char*)args.value); | 2403 | args.value); |
2406 | kmem_free(args.value); | 2404 | kmem_free(args.value); |
2407 | } else { | 2405 | } else { |
2408 | retval = context->put_listent(context, | 2406 | retval = context->put_listent(context, |
2409 | entry->flags, | 2407 | entry->flags, |
2410 | (char *)name_rmt->name, | 2408 | name_rmt->name, |
2411 | (int)name_rmt->namelen, | 2409 | (int)name_rmt->namelen, |
2412 | valuelen, | 2410 | valuelen, |
2413 | NULL); | 2411 | NULL); |
@@ -2419,7 +2417,7 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2419 | break; | 2417 | break; |
2420 | cursor->offset++; | 2418 | cursor->offset++; |
2421 | } | 2419 | } |
2422 | xfs_attr_trace_l_cl("blk end", context, leaf); | 2420 | trace_xfs_attr_list_leaf_end(context); |
2423 | return(retval); | 2421 | return(retval); |
2424 | } | 2422 | } |
2425 | 2423 | ||
@@ -2952,7 +2950,7 @@ xfs_attr_leaf_freextent(xfs_trans_t **trans, xfs_inode_t *dp, | |||
2952 | map.br_blockcount); | 2950 | map.br_blockcount); |
2953 | bp = xfs_trans_get_buf(*trans, | 2951 | bp = xfs_trans_get_buf(*trans, |
2954 | dp->i_mount->m_ddev_targp, | 2952 | dp->i_mount->m_ddev_targp, |
2955 | dblkno, dblkcnt, XFS_BUF_LOCK); | 2953 | dblkno, dblkcnt, XBF_LOCK); |
2956 | xfs_trans_binval(*trans, bp); | 2954 | xfs_trans_binval(*trans, bp); |
2957 | /* | 2955 | /* |
2958 | * Roll to next transaction. | 2956 | * Roll to next transaction. |