aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/volumes.c18
-rw-r--r--fs/btrfs/volumes.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 96bb2e4446aa..6cd8a32c4484 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -5106,3 +5106,21 @@ int btrfs_get_dev_stats(struct btrfs_root *root,
5106 stats->nr_items = BTRFS_DEV_STAT_VALUES_MAX; 5106 stats->nr_items = BTRFS_DEV_STAT_VALUES_MAX;
5107 return 0; 5107 return 0;
5108} 5108}
5109
5110int btrfs_scratch_superblock(struct btrfs_device *device)
5111{
5112 struct buffer_head *bh;
5113 struct btrfs_super_block *disk_super;
5114
5115 bh = btrfs_read_dev_super(device->bdev);
5116 if (!bh)
5117 return -EINVAL;
5118 disk_super = (struct btrfs_super_block *)bh->b_data;
5119
5120 memset(&disk_super->magic, 0, sizeof(disk_super->magic));
5121 set_buffer_dirty(bh);
5122 sync_dirty_buffer(bh);
5123 brelse(bh);
5124
5125 return 0;
5126}
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
index ad5566d4f2c8..7eaaf4e61959 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -301,6 +301,7 @@ int btrfs_get_dev_stats(struct btrfs_root *root,
301int btrfs_init_dev_stats(struct btrfs_fs_info *fs_info); 301int btrfs_init_dev_stats(struct btrfs_fs_info *fs_info);
302int btrfs_run_dev_stats(struct btrfs_trans_handle *trans, 302int btrfs_run_dev_stats(struct btrfs_trans_handle *trans,
303 struct btrfs_fs_info *fs_info); 303 struct btrfs_fs_info *fs_info);
304int btrfs_scratch_superblock(struct btrfs_device *device);
304 305
305static inline void btrfs_dev_stat_inc(struct btrfs_device *dev, 306static inline void btrfs_dev_stat_inc(struct btrfs_device *dev,
306 int index) 307 int index)