<div dir="ltr"><div><div><div><div><div>greetings everyone.<br></div>writing this post as an extension to this bug report[1]<br><br></div>I just added support for multi disk btrfs in my project zuluCrypt[2] and i though i should write here to discuss how i did it.<br>

<br></div>First,the problem:<br><br></div>A btrfs can be created across multiple devices,let say across "/dev/sdc1","/dev/sdb2" and "/dev/sdd3".<br><br></div>With btrfs,any one of them can be used to mount the volume and this creates a problem because one<br>

 device will appear as mounted in "/proc/self/mountinfo" and the remaining two will appear as not mounted.<br>This scenario is explained in comment #4 in link[1]<br><div><div><div><div><br></div><div>Solution i came up with:<br>

<br></div><div>Btrfs has the following UUID property,all 3 devices in the example above will share the same "UUID" but<br> will have different "UUID_SUB".<br><br></div><div>With the above in mind,the route i decided to take is as follows:<br>

<br></div><div>When scanning for a list of devices,i check for the file system on each device and when i see a btrfs volume,<br>i note its UUID and register the device and then i ignore all sub sequence btrfs devices with the same UUID.<br>

In other words,i only keep and show only the first seen btrfs device if the btrfs volume covers multiple devices.<br></div><div><br></div><div>When the btrfs volume is mounted,i display the size of the volume as reported by the file system.<br>

<br></div><div>When the btrfs volume is not mounted,i read its UUID and then i match it against UUID of all devices and add up device sizes<br>if the UUID match the btrfs volume i am interested in.<br><br>In other words,the way to keep track of devices with btrfs is to do that through their shared UUID.<br>

A btrfs volume with only one device will give a UUID that show up only once.<br><br></div><div>For example,as in comment number 4 in link[1],i would only show "/dev/vda2" and hide "/dev/vdb1" and "/dev/vda2" will be the only valid<br>

</div><div>representative of the btrfs volume and i will use "UUID" in "/dev/vda2" to know this device belong to the same btrfs file system "/dev/sda2" belong.<br></div><div><br></div><div>thanks for letting me share my solution for btrfs problem.</div>

<div><br>[1] <a href="https://bugzilla.gnome.org/show_bug.cgi?id=608204">https://bugzilla.gnome.org/show_bug.cgi?id=608204</a><br><br>[2] <a href="http://code.google.com/p/zulucrypt/">http://code.google.com/p/zulucrypt/</a><br>

</div></div></div></div></div>