* Namespace helper routines
  *========================================================================*/
 
-/*
- * If namespace bits don't match return 0.
- * If all match then return 1.
- */
-STATIC int
-xfs_attr_namesp_match(int arg_flags, int ondisk_flags)
+static bool
+xfs_attr_match(
+       struct xfs_da_args      *args,
+       uint8_t                 namelen,
+       unsigned char           *name,
+       int                     flags)
 {
-       return XFS_ATTR_NSP_ONDISK(ondisk_flags) == XFS_ATTR_NSP_ARGS_TO_ONDISK(arg_flags);
+       if (args->namelen != namelen)
+               return false;
+       if (memcmp(args->name, name, namelen) != 0)
+               return false;
+       if (XFS_ATTR_NSP_ARGS_TO_ONDISK(args->flags) !=
+           XFS_ATTR_NSP_ONDISK(flags))
+               return false;
+       return true;
 }
 
 static int
        sf = (xfs_attr_shortform_t *)ifp->if_u1.if_data;
        sfe = &sf->list[0];
        for (i = 0; i < sf->hdr.count; sfe = XFS_ATTR_SF_NEXTENTRY(sfe), i++) {
-#ifdef DEBUG
-               if (sfe->namelen != args->namelen)
-                       continue;
-               if (memcmp(args->name, sfe->nameval, args->namelen) != 0)
-                       continue;
-               if (!xfs_attr_namesp_match(args->flags, sfe->flags))
-                       continue;
-               ASSERT(0);
-#endif
+               ASSERT(!xfs_attr_match(args, sfe->namelen, sfe->nameval,
+                       sfe->flags));
        }
 
        offset = (char *)sfe - (char *)sf;
        for (i = 0; i < end; sfe = XFS_ATTR_SF_NEXTENTRY(sfe),
                                        base += size, i++) {
                size = XFS_ATTR_SF_ENTSIZE(sfe);
-               if (sfe->namelen != args->namelen)
-                       continue;
-               if (memcmp(sfe->nameval, args->name, args->namelen) != 0)
-                       continue;
-               if (!xfs_attr_namesp_match(args->flags, sfe->flags))
-                       continue;
-               break;
+               if (xfs_attr_match(args, sfe->namelen, sfe->nameval,
+                               sfe->flags))
+                       break;
        }
        if (i == end)
                return -ENOATTR;
        sfe = &sf->list[0];
        for (i = 0; i < sf->hdr.count;
                                sfe = XFS_ATTR_SF_NEXTENTRY(sfe), i++) {
-               if (sfe->namelen != args->namelen)
-                       continue;
-               if (memcmp(args->name, sfe->nameval, args->namelen) != 0)
-                       continue;
-               if (!xfs_attr_namesp_match(args->flags, sfe->flags))
-                       continue;
-               return -EEXIST;
+               if (xfs_attr_match(args, sfe->namelen, sfe->nameval,
+                               sfe->flags))
+                       return -EEXIST;
        }
        return -ENOATTR;
 }
        sfe = &sf->list[0];
        for (i = 0; i < sf->hdr.count;
                                sfe = XFS_ATTR_SF_NEXTENTRY(sfe), i++) {
-               if (sfe->namelen != args->namelen)
-                       continue;
-               if (memcmp(args->name, sfe->nameval, args->namelen) != 0)
-                       continue;
-               if (!xfs_attr_namesp_match(args->flags, sfe->flags))
-                       continue;
-               return xfs_attr_copy_value(args, &sfe->nameval[args->namelen],
-                                               sfe->valuelen);
+               if (xfs_attr_match(args, sfe->namelen, sfe->nameval,
+                               sfe->flags))
+                       return xfs_attr_copy_value(args,
+                               &sfe->nameval[args->namelen], sfe->valuelen);
        }
        return -ENOATTR;
 }
                }
                if (entry->flags & XFS_ATTR_LOCAL) {
                        name_loc = xfs_attr3_leaf_name_local(leaf, probe);
-                       if (name_loc->namelen != args->namelen)
-                               continue;
-                       if (memcmp(args->name, name_loc->nameval,
-                                                       args->namelen) != 0)
-                               continue;
-                       if (!xfs_attr_namesp_match(args->flags, entry->flags))
+                       if (!xfs_attr_match(args, name_loc->namelen,
+                                       name_loc->nameval, entry->flags))
                                continue;
                        args->index = probe;
                        return -EEXIST;
                } else {
                        name_rmt = xfs_attr3_leaf_name_remote(leaf, probe);
-                       if (name_rmt->namelen != args->namelen)
-                               continue;
-                       if (memcmp(args->name, name_rmt->name,
-                                                       args->namelen) != 0)
-                               continue;
-                       if (!xfs_attr_namesp_match(args->flags, entry->flags))
+                       if (!xfs_attr_match(args, name_rmt->namelen,
+                                       name_rmt->name, entry->flags))
                                continue;
                        args->index = probe;
                        args->rmtvaluelen = be32_to_cpu(name_rmt->valuelen);