human
Complete this python program:
def _list_filesystems(reactor, pool):
assistant
#Here is the Python program you requested.

    """Get a listing of all filesystems on a given pool.
    :param pool: A `flocker.volume.filesystems.interface.IStoragePool`
    provider.
    :return: A ``Deferred`` that fires with an iterator, the elements
    of which are ``tuples`` containing the name and mountpoint of each
    filesystem.
    """
    listing = zfs_command(reactor, ['list', '-d', '1', '-H', '-p', '-o', 'name,mountpoint,refquota', pool])
    def listed(output, pool):
        for line in output.splitlines():
            (name, mountpoint, refquota) = line.split(' DCTB ')
            name = name[(len(pool) + 1):]
            if name:
                refquota = int(refquota.decode('ascii'))
                if (refquota == 0):
                    refquota = None
                (yield _DatasetInfo(dataset=name, mountpoint=mountpoint, refquota=refquota))
    listing.addCallback(listed, pool)
    return listing