• Chris Mason's avatar
    Btrfs: Allow subvolumes and snapshots anywhere in the directory tree · 3de4586c
    Chris Mason authored
    Before, all snapshots and subvolumes lived in a single flat directory.  This
    was awkward and confusing because the single flat directory was only writable
    with the ioctls.
    This commit changes the ioctls to create subvols and snapshots at any
    point in the directory tree.  This requires making separate ioctls for
    snapshot and subvol creation instead of a combining them into one.
    The subvol ioctl does:
    btrfsctl -S subvol_name parent_dir
    After the ioctl is done subvol_name lives inside parent_dir.
    The snapshot ioctl does:
    btrfsctl -s path_for_snapshot root_to_snapshot
    path_for_snapshot can be an absolute or relative path.  btrfsctl breaks it up
    into directory and basename components.
    root_to_snapshot can be any file or directory in the FS.  The snapshot
    is taken of the entire root where that file lives.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>