C.5. Glock Holders

Tabela C.5, “Sinalizadores do proprietário glock” exibe os significados de diferentes bandeiras de glock holders..
Tabela C.5. Sinalizadores do proprietário glock
SinalizadorNomeSignificado
aAsyncNão espere pelo resultado glock (fará um conjunto para enviar depois)
AQualquerQualquer modo de bloqueio compatível é aceitável
cSem cacheQuando desbloqueado, rebaixe o bloqueio DLM imediatamente
eNão expireIgnore pedidos de cancelamento de bloqueios subsequentes
EexatoDeve ter um modo de bloqueio exato
FPrimeiroAjuste quando o proprietário é o primeiro a ser concedido para este bloqueio
HDetentorIndica que o bloqueio requerido é concedido
pPrioridadeEnfileire os proprietários no início da fila
tTentarUma "tentativa" de bloqueio
TTentar 1CBUma "tentativa" que envia um callback
WEsperaAjuste enquanto espera por um pedido para completar
As bandeiras holders mais importantes são H (holder) e W (wait) como mencionado anteriormente, uma vez que elas são definidas dependendo das solicitações de bloqueio concedidos e as solicitações de bloqueio em fila de espera, respectivamente. A ordenação dos holders na lista é importante. Se houver qualquer holder concedido, eles estarão sempre no topo da fila, seguido por quaisquer holders em fila de espera.
Se não houver holders concedidos, o primeiro holder da lista será aquele que desencadeia a próxima mudança de estado. Como as solicitações de rebaixamento (demote) sempre são considerados prioridade maior do que os pedidos do sistema de arquivos, estas podem nem sempre resultar diretamente em uma mudança para o estado requerido.
O subsistema do glock suporta dois tipos de bloqueio de "experimento". Eles são úteis tanto porque permitem a obtenção de bloqueios fora da ordem normal (com um adequado back-off e repetição) como também porque pode ser usado para ajudar a evitar a utilização de recursos por outros nós. O bloqueio t (try) normal, é basicamente, apenas o que seu nome indica, é uma "tentativa" de bloqueio, que não faz nada de especial. O bloqueio T (try 1CB) por outro lado, é idêntico ao bloqueio t, exceto que o DLM irá enviar uma única chamada de retorno para os bloqueios holders de correntes incompatíveis. Uma das utilidades do bloqueio T (try 1CB) é com os bloqueios iopen, que são utilizados para arbitrar entre os nós quando a contagem de um i_nlink do inode é zero, e determinar qual dos nós será responsável por desalocar o inode. O glock iopen é normalmente realizado no estado compartilhado, mas quando a contagem do i_nlink torna-se zero e ->delete_inode() é chamado, ele vai solicitar um bloqueio exclusivo com o conjunto do T (try 1CB). Ele continuará a desalocar o inode se o bloqueio for concedido. Se o bloqueio não for concedido o resultado será o(s) nó(s) que estavam impedindo a concessão do bloqueio marcando seu(s) glock(s) com a bandeira D (demote), que é verificada em ->drop_inode() tempo, a fim de assegurar que o desalocação não seja esquecida.
Isso significa que inodes que possuem contagem de links zero, mas ainda estão abertos será desalocado pelo nó em que ocorre o último close (). Além disso, ao mesmo tempo que a contagem da ligação do inodo é decrementado para zero o inodo é marcado como estando no estado especial de possuir zero de contagem da link, mas ainda em uso no bitmap do grupo de recursos. Este funciona como lista órfã do arquivo ext3 system3 na medida em que permite que qualquer leitor subseqüente do bitmap saiba que existe espaço em potencial que pode ser recuperado, e tentar recuperá-lo.
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.