internal close -> end
fsync on end()