> +     if (XFS_RMAP_NON_INODE_OWNER(rec->rm_owner) ||
> +         (rec->rm_flags & (XFS_RMAP_ATTR_FORK | XFS_RMAP_BMBT_BLOCK))) {
> +             // TODO check and try to fix metadata
> +             rc = -EFSCORRUPTED;
> +             xfs_force_shutdown(cur->bc_mp, SHUTDOWN_CORRUPT_META);

Just return early here so that we can avoid the else later.

> +             /*
> +              * Get files that incore, filter out others that are not in use.
> +              */
> +             rc = xfs_iget(cur->bc_mp, cur->bc_tp, rec->rm_owner,
> +                           XFS_IGET_INCORE, 0, &ip);

Can we rename rc to error?

> +             if (rc || !ip)
> +                     return rc;

No need to check for ip here.

> +             if (!VFS_I(ip)->i_mapping)
> +                     goto out;

This can't happen either.

> +
> +             mapping = VFS_I(ip)->i_mapping;
> +             if (IS_DAX(VFS_I(ip)))
> +                     rc = mf_dax_mapping_kill_procs(mapping, rec->rm_offset,
> +                                                    *flags);
> +             else {
> +                     rc = -EIO;
> +                     mapping_set_error(mapping, rc);
> +             }

By passing the method directly to the DAX device we should never get
this called for the non-DAX case.

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to