fix Cluster::write_file extra argument & support owner