# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description   "Update /data's security.restorecon_last xattr"
author        "chromium-os-dev@chromium.org"

# Updates security.restorecon_last xattr of /data (and /cache on N) once
# ARC finishes booting. For more details, see comments in
# ArcSetup::OnUpdateRestoreconLast() in arc_setup.cc. Note that arc-booted is
# only emitted when ARC successfully reaches the boot_progress_enable_screen
# phase, which implies that all the restorecon_recursive calls done by init
# have successfully completed.

start on arc-booted

exec /usr/sbin/arc-setup --mode=update-restorecon-last \
    "--log_tag=${UPSTART_JOB}"
