// Copyright 2019 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.

#ifndef LIBBRILLO_BRILLO_SCOPED_MOUNT_NAMESPACE_H_
#define LIBBRILLO_BRILLO_SCOPED_MOUNT_NAMESPACE_H_

#include <memory>

#include <base/macros.h>
#include <base/files/file_path.h>
#include <base/files/scoped_file.h>

#include <brillo/brillo_export.h>

namespace brillo {

// A class that restores a mount namespace when it goes out of scope. This can
// be done by entering another process' mount namespace by using
// CreateForPid(), or by supplying a mount namespace FD directly.
class BRILLO_EXPORT ScopedMountNamespace {
 public:
  // Enters the process identified by |pid|'s mount namespace and returns a
  // unique_ptr that restores the original mount namespace when it goes out of
  // scope.
  static std::unique_ptr<ScopedMountNamespace> CreateForPid(pid_t pid);

  // Enters the mount namespace identified by |path| and returns a unique_ptr
  // that restores the original mount namespace when it goes out of scope.
  static std::unique_ptr<ScopedMountNamespace> CreateFromPath(
      const base::FilePath& ns_path);

  explicit ScopedMountNamespace(base::ScopedFD mount_namespace_fd);
  ScopedMountNamespace(const ScopedMountNamespace&) = delete;
  ScopedMountNamespace& operator=(const ScopedMountNamespace&) = delete;

  ~ScopedMountNamespace();

 private:
  base::ScopedFD mount_namespace_fd_;
};

}  // namespace brillo

#endif  // LIBBRILLO_BRILLO_SCOPED_MOUNT_NAMESPACE_H_
