2014-05-16 22:14 GMT+08:00 Anand Jain <anand.j...@oracle.com>:
>
> Wang,
>
>  There seems to be a problem - after we delete the seed
>  disk, the total_devices didn't decrement back to 1.
>  reproducer as in the below test case. (I used btrfs-devlist
>  (posted) to check fs_devices).

There should be other problems flighting or i missed something ,
i'll take a look at this. Thanks Anand for finding this.

>
>
>  > # mkfs.btrfs -f /dev/sdb
>  > # btrfstune -S 1 /dev/sdb
>  > # mount /dev/sdb /mnt
>  > # btrfs device add -f /dev/sdc /mnt --->fs_devices->total_devices = 1
>  mount -o rw,remount /mnt
>  btrfs dev del /dev/sdb /mnt --> fs_devices->total_devices is still 2
>
> Thanks, Anand
>
>
>
> On 13/05/14 17:05, Wang Shilong wrote:
>>
>> Seeding device support allows us to create a new filesystem
>> based on existed filesystem.
>>
>> However newly created filesystem's @total_devices should include seed
>> devices. This patch fix the following problem:
>>
>>   # mkfs.btrfs -f /dev/sdb
>>   # btrfstune -S 1 /dev/sdb
>>   # mount /dev/sdb /mnt
>>   # btrfs device add -f /dev/sdc /mnt --->fs_devices->total_devices = 1
>>   # umount /mnt
>>   # mount /dev/sdc /mnt               --->fs_devices->total_devices = 2
>>
>> This is because we record right @total_devices in superblock, but
>> @fs_devices->total_devices is reset to be 0 in btrfs_prepare_sprout().
>>
>> Fix this problem by not resetting @fs_devices->total_devices.
>>
>> Signed-off-by: Wang Shilong <wangsl.f...@cn.fujitsu.com>
>> ---
>>   fs/btrfs/volumes.c | 1 -
>>   1 file changed, 1 deletion(-)
>>
>> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
>> index 6fd7fe6..19b2d32 100644
>> --- a/fs/btrfs/volumes.c
>> +++ b/fs/btrfs/volumes.c
>> @@ -1883,7 +1883,6 @@ static int btrfs_prepare_sprout(struct btrfs_root
>> *root)
>>         fs_devices->seeding = 0;
>>         fs_devices->num_devices = 0;
>>         fs_devices->open_devices = 0;
>> -       fs_devices->total_devices = 0;
>>         fs_devices->seed = seed_devices;
>>
>>         generate_random_uuid(fs_devices->fsid);
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to