You need to add "public" before your functions since its in a class, you also are over stacked on your rcmail calls, "rcmail::rcmail::get_instance()" should be "rcmail::get_instance()":
class carryon extends rcube_plugin
{
public $container;
public $dbuf;
public function init()
{
$this->add_hook('attachment_upload', array($this, 'upload');
}
public function upload($args)
{
$temp_dir = rcmail::get_instance();
$tmpfname = tempnam($temp_dir, 'rcmAttmnt');
$args['id'] = $this->file_id();
$args['path'] = $tmpfname;
$args['status'] = false;
return $args;
}