On Wed, Oct 14, 2015 at 11:09:37PM +0530, Chandan Rajendra wrote:
> When creating small Btrfs filesystem instances (i.e. filesystem size <= 1GiB),
> mkfs.btrfs fails if both sectorsize and nodesize are specified on the command
> line and sectorsize != nodesize, since mixed block groups involves both data
> and metadata blocks sharing the same block group. This is an incorrect 
> behavior
> when '-M' option isn't specified on the command line.
> 
> This commit makes optional the creation of mixed block groups i.e. Mixed block
> groups are created only when -M option is specified on the command line.

Thanks, added to the devel branch, with a basic test.

> Since we now allow small filesystem instances with sectorsize != nodesize to
> be created, we can end up in the following situation,
> 
> [root@localhost ~]# mkfs.btrfs -f -n 65536 /dev/loop0
> Node size:          65536
> Sector size:        4096
> [root@localhost ~]# mount /dev/loop0 /mnt/
> mount: mount /dev/loop0 on /mnt failed: No space left on device
> 
> The ENOSPC occurs during the creation of the UUID tree. This is because of
> things like large metadata block size, DUP mode used for metadata and global
> reservation consuming space. Also, large nodesize does not make sense on small
> filesystems, hence this should not be an issue.

Understood and accepted. We may trip over other bugs, I haven't tested
it thoroughly but want to give this change more exposure.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to