LCOV - code coverage report
Current view: top level - fs/btrfs - orphan.c (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc4-xfsx @ Mon Jul 31 20:08:34 PDT 2023 Lines: 28 31 90.3 %
Date: 2023-07-31 20:08:34 Functions: 2 2 100.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (C) 2008 Red Hat.  All rights reserved.
       4             :  */
       5             : 
       6             : #include "ctree.h"
       7             : #include "disk-io.h"
       8             : #include "orphan.h"
       9             : 
      10     1788711 : int btrfs_insert_orphan_item(struct btrfs_trans_handle *trans,
      11             :                              struct btrfs_root *root, u64 offset)
      12             : {
      13     1788711 :         struct btrfs_path *path;
      14     1788711 :         struct btrfs_key key;
      15     1788711 :         int ret = 0;
      16             : 
      17     1788711 :         key.objectid = BTRFS_ORPHAN_OBJECTID;
      18     1788711 :         key.type = BTRFS_ORPHAN_ITEM_KEY;
      19     1788711 :         key.offset = offset;
      20             : 
      21     1788711 :         path = btrfs_alloc_path();
      22     1788644 :         if (!path)
      23             :                 return -ENOMEM;
      24             : 
      25     1788644 :         ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
      26             : 
      27     1788728 :         btrfs_free_path(path);
      28     1788728 :         return ret;
      29             : }
      30             : 
      31     1788679 : int btrfs_del_orphan_item(struct btrfs_trans_handle *trans,
      32             :                           struct btrfs_root *root, u64 offset)
      33             : {
      34     1788679 :         struct btrfs_path *path;
      35     1788679 :         struct btrfs_key key;
      36     1788679 :         int ret = 0;
      37             : 
      38     1788679 :         key.objectid = BTRFS_ORPHAN_OBJECTID;
      39     1788679 :         key.type = BTRFS_ORPHAN_ITEM_KEY;
      40     1788679 :         key.offset = offset;
      41             : 
      42     1788679 :         path = btrfs_alloc_path();
      43     1788677 :         if (!path)
      44             :                 return -ENOMEM;
      45             : 
      46     1788677 :         ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
      47     1788684 :         if (ret < 0)
      48           0 :                 goto out;
      49     1788684 :         if (ret) { /* JDM: Really? */
      50           0 :                 ret = -ENOENT;
      51           0 :                 goto out;
      52             :         }
      53             : 
      54     1788684 :         ret = btrfs_del_item(trans, root, path);
      55             : 
      56     1788682 : out:
      57     1788682 :         btrfs_free_path(path);
      58     1788682 :         return ret;
      59             : }

Generated by: LCOV version 1.14