trans = start_transaction(root, 0, TRANS_ATTACH,
                                  BTRFS_RESERVE_NO_FLUSH, true);
-       if (IS_ERR(trans) && PTR_ERR(trans) == -ENOENT)
+       if (trans == ERR_PTR(-ENOENT))
                btrfs_wait_for_commit(root->fs_info, 0);
 
        return trans;
 
                                                     dir_key->offset,
                                                     name, name_len, 0);
                }
-               if (!log_di || (IS_ERR(log_di) && PTR_ERR(log_di) == -ENOENT)) {
+               if (!log_di || log_di == ERR_PTR(-ENOENT)) {
                        btrfs_dir_item_key_to_cpu(eb, di, &location);
                        btrfs_release_path(path);
                        btrfs_release_path(log_path);
                                 * we don't need to do more work nor fallback to
                                 * a transaction commit.
                                 */
-                               if (IS_ERR(other_inode) &&
-                                   PTR_ERR(other_inode) == -ENOENT) {
+                               if (other_inode == ERR_PTR(-ENOENT)) {
                                        goto next_key;
                                } else if (IS_ERR(other_inode)) {
                                        err = PTR_ERR(other_inode);