LCOV - code coverage report
Current view: top level - fs/btrfs - raid56.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 3 0.0 %
Date: 2014-02-18 Functions: 0 0 -
Branches: 0 4 0.0 %

           Branch data     Line data    Source code
       1                 :            : /*
       2                 :            :  * Copyright (C) 2012 Fusion-io  All rights reserved.
       3                 :            :  * Copyright (C) 2012 Intel Corp. All rights reserved.
       4                 :            :  *
       5                 :            :  * This program is free software; you can redistribute it and/or
       6                 :            :  * modify it under the terms of the GNU General Public
       7                 :            :  * License v2 as published by the Free Software Foundation.
       8                 :            :  *
       9                 :            :  * This program is distributed in the hope that it will be useful,
      10                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      11                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12                 :            :  * General Public License for more details.
      13                 :            :  *
      14                 :            :  * You should have received a copy of the GNU General Public
      15                 :            :  * License along with this program; if not, write to the
      16                 :            :  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
      17                 :            :  * Boston, MA 021110-1307, USA.
      18                 :            :  */
      19                 :            : 
      20                 :            : #ifndef __BTRFS_RAID56__
      21                 :            : #define __BTRFS_RAID56__
      22                 :            : static inline int nr_parity_stripes(struct map_lookup *map)
      23                 :            : {
      24         [ #  # ]:          0 :         if (map->type & BTRFS_BLOCK_GROUP_RAID5)
      25                 :            :                 return 1;
      26         [ #  # ]:          0 :         else if (map->type & BTRFS_BLOCK_GROUP_RAID6)
      27                 :            :                 return 2;
      28                 :            :         else
      29                 :            :                 return 0;
      30                 :            : }
      31                 :            : 
      32                 :            : static inline int nr_data_stripes(struct map_lookup *map)
      33                 :            : {
      34                 :          0 :         return map->num_stripes - nr_parity_stripes(map);
      35                 :            : }
      36                 :            : #define RAID5_P_STRIPE ((u64)-2)
      37                 :            : #define RAID6_Q_STRIPE ((u64)-1)
      38                 :            : 
      39                 :            : #define is_parity_stripe(x) (((x) == RAID5_P_STRIPE) ||         \
      40                 :            :                              ((x) == RAID6_Q_STRIPE))
      41                 :            : 
      42                 :            : int raid56_parity_recover(struct btrfs_root *root, struct bio *bio,
      43                 :            :                                  struct btrfs_bio *bbio, u64 *raid_map,
      44                 :            :                                  u64 stripe_len, int mirror_num);
      45                 :            : int raid56_parity_write(struct btrfs_root *root, struct bio *bio,
      46                 :            :                                struct btrfs_bio *bbio, u64 *raid_map,
      47                 :            :                                u64 stripe_len);
      48                 :            : 
      49                 :            : int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info);
      50                 :            : void btrfs_free_stripe_hash_table(struct btrfs_fs_info *info);
      51                 :            : #endif

Generated by: LCOV version 1.9