forked from Mirrors/btrfs-progs
btrfs-progs: Introduce change_device_uuid function
This function changes a device items uuid. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>master
parent
605621993d
commit
cff8aa2313
21
btrfstune.c
21
btrfstune.c
|
@ -198,6 +198,27 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int change_device_uuid(struct btrfs_root *root, struct extent_buffer *eb,
|
||||||
|
int slot)
|
||||||
|
{
|
||||||
|
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||||
|
struct btrfs_dev_item *di;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
di = btrfs_item_ptr(eb, slot, struct btrfs_dev_item);
|
||||||
|
if (fs_info->new_fsid) {
|
||||||
|
if (!memcmp_extent_buffer(eb, fs_info->new_fsid,
|
||||||
|
(unsigned long)btrfs_device_fsid(di),
|
||||||
|
BTRFS_FSID_SIZE))
|
||||||
|
return ret;
|
||||||
|
write_extent_buffer(eb, fs_info->new_fsid,
|
||||||
|
(unsigned long)btrfs_device_fsid(di),
|
||||||
|
BTRFS_FSID_SIZE);
|
||||||
|
ret = write_tree_block(NULL, root, eb);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static void print_usage(void)
|
static void print_usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: btrfstune [options] device\n");
|
fprintf(stderr, "usage: btrfstune [options] device\n");
|
||||||
|
|
Loading…
Reference in New Issue