Linux x86_64Sistema de arquivos#442
mount_setattr
Altera atributos de uma árvore de montagem (opcionalmente de forma recursiva), usando um descritor obtido via open_tree.
Descrição
Permite ajustar flags como MOUNT_ATTR_RDONLY ou MOUNT_ATTR_NOEXEC em toda uma subárvore de montagens de uma vez, algo que a API `mount`/remount tradicional não fazia atomicamente.
Header:
linux/mount.hman 2Desde o kernel 5.12Assinatura
int mount_setattr(
int dirfd,
const char * pathname,
unsigned int flags,
struct mount_attr * uattr,
size_t usize
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| dirfd | int | Descritor do diretório base, ou AT_FDCWD. |
| pathname | const char * | Caminho da árvore de montagem. |
| flags | unsigned int | AT_EMPTY_PATH, AT_RECURSIVE, AT_SYMLINK_NOFOLLOW, AT_NO_AUTOMOUNT. |
| uattr | struct mount_attr * | Novos atributos e máscara indicando quais alterar. |
| usize | size_t | Tamanho de `uattr`, para extensibilidade futura. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | dirfdint |
| rsi | argumento 2 | pathnameconst char * |
| rdx | argumento 3 | flagsunsigned int |
| r10 | argumento 4 | uattrstruct mount_attr * |
| r8 | argumento 5 | usizesize_t |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- ENOENT(2)
- Arquivo ou diretório inexistente.
- EPERM(1)
- Operação não permitida (falta de privilégio).