Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       ioctl_getfsmap - récupérer la topographie physique du système de fichiers

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <linux/fsmap.h>  /* Définition des constantes FS_IOC_GETFSMAP,
                                    FM?_OF_* et *FMR_OWN_* */
       #include <sys/ioctl.h>

       int ioctl(int fd, FS_IOC_GETFSMAP, struct fsmap_head * arg);

DESCRIPTION

       Cette  opération  ioctl(2)  récupère  les  plans  de  domaine  (extent)  d'un  système  de  fichiers. Ces
       informations peuvent être utilisées, entre autres, pour  rechercher  les  fichiers  associés  à  un  bloc
       physique, analyser l'espace libre, ou chercher les blocs connus comme défectueux.

       Le seul paramètre de cette opération doit être un pointeur vers une struct fsmap_head unique :

           struct fsmap {
               __u32 fmr_device;      /* ID périphérique */
               __u32 fmr_flags;       /* Attributs de plan */
               __u64 fmr_physical;    /* Adresse du segment de périphérique */
               __u64 fmr_owner;       /* ID du propriétaire */
               __u64 fmr_offset;      /* Adresse du segment de fichier */
               __u64 fmr_length;      /* Longueur du segment */
               __u64 fmr_reserved[3]; /* Obligatoirement à zéro */
           };

           struct fsmap_head {
               __u32 fmh_iflags;       /* Attributs de contrôle */
               __u32 fmh_oflags;       /* Attributs de sortie */
               __u32 fmh_count;        /* # of entries in array incl. input */
               __u32 fmh_entries;      /* Nb d’entrées remplies (sortie) */
               __u64 fmh_reserved[6];  /* Obligatoirement à zéro */

               struct fsmap fmh_keys[2];  /* Clés basse et haute pour
                                             la recherche de plan */
               struct fsmap fmh_recs[];   /* Enregistrements renvoyés */
           };

       Les  deux  éléments  de  tableau  fmh_keys  indiquent la clé la plus basse et la plus haute pour laquelle
       l'application  veut  les  informations  du  plan  physique   par   rétro-représentation.   Une   clé   de
       rétro-représentation (« retro-mapping key ») consiste dans la séquence (périphérique, bloc, propriétaire,
       position).  Les  champs  du propriétaire et de la position font partie de la clé car certains systèmes de
       fichiers prennent en charge le partage de blocs physiques entre  plusieurs  fichiers,  ils  peuvent  donc
       renvoyer plusieurs associations pour un bloc physique donné.

       Les  plans  des  systèmes  de  fichiers  sont copiés dans un tableau fmh_recs, qui suit immédiatement les
       données d'en-tête.

   Champs de la structure fsmap_head
       Le champ fmh_iflags est un masque de bit passé au noyau pour modifier la  sortie.  Aucun  attribut  n'est
       actuellement défini, l'appelant doit donc positionner cette valeur à zéro.

       Le  champ  fmh_oflags  est  un  masque  de  bit d'attributs positionnés par le noyau concernant les plans
       renvoyés. Si FMH_OF_DEV_T est positionné, le champ fmr_device représente une  structure  dev_t  contenant
       les numéros majeur et mineur du périphérique bloc.

       Le  champ  fmh_count  contient le nombre d'éléments du tableau à passer au noyau. Si cette valeur vaut 0,
       fmh_entries sera positionné au nombre d'enregistrements qui auraient été renvoyés avec  un  tableau  plus
       grand ; aucune information de plan ne sera renvoyée.

       Le  champ  fmh_entries contient le nombre d'éléments du tableau fmh_recs qui contiennent des informations
       utiles.

       Le champ fmh_reserved doit être positionné à zéro.

   Clés
       Les deux enregistrements de clés fsmap_head.fmh_keys indiquent les enregistrements de  domaines  le  plus
       bas et le plus haut de l'espace de clés (keyspace) pour lequel l'appelant a demandé le renvoi. Un système
       de fichiers qui peut partager des blocs entre les fichiers exige probablement la série (device, physical,
       owner, offset, flags) pour n'indexer que les enregistrements de plan de système de fichiers. Les systèmes
       de   fichiers  classiques  qui  ne  permettent  pas  ce  partage  pourraient  identifier  n'importe  quel
       enregistrement avec uniquement (device, physical, flags). Par exemple, si la clé  basse  est  positionnée
       sur  (8:0,  36864,  0,  0,  0),  le  système de fichiers ne renverra que les enregistrements des domaines
       commençant ou se trouvant après 36 Kio sur le disque. Si la clé haute est positionnée sur (8:0,  1048576,
       0,  0, 0), seuls les enregistrements inférieurs à 1 Mio seront renvoyés. Le format de fmr_device dans les
       clés doit correspondre au format de ces mêmes champs dans les enregistrements  de  sortie,  comme  défini
       ci-dessous.  Par  convention,  le  champ  fsmap_head.fmh_keys[0]  doit  contenir la clé basse et le champ
       fsmap_head.fmh_keys[1] la clé haute pour l'opération'.

       Par commodité, si fmr_length est positionné dans la clé basse, il sera ajouté en fonction à fmr_block  ou
       à  fmr_offset.  L'appelant  peut  tirer  parti  de  cette subtilité en positionnant les appels suivants à
       travers la copie de  fsmap_head.fmh_recs[fsmap_head.fmh_entries - 1]  dans  la  clé  basse.  La  fonction
       fsmap_advance (définie dans linux/fsmap.h) fournit cette possibilité.

   Champs de la structure fsmap
       Le  champ  fmr_device  identifie  uniquement  le  périphérique  de  stockage  sous-jacent.  Si l'attribut
       FMH_OF_DEV_T est positionné dans le champ fmh_oflags de l'en-tête, ce champ contient un  dev_t  à  partir
       duquel  les  numéros majeur et mineur peuvent être extraits. Si l'attribut n'est pas positionné, ce champ
       contient une valeur qui doit être unique pour chaque périphérique de stockage.

       Le champ fmr_physical contient l'adresse sur le disque du domaine en octets.

       Le champ fmr_owner contient  le  propriétaire  du  domaine.  Il  s'agit  d'un  numéro  d'inœud,  sauf  si
       FMR_OF_SPECIAL_OWNER  est  positionné dans le champ fmr_flags, auquel cas la valeur est déterminée par le
       système de fichiers. Voir la section ci-dessous concernant les  valeurs  du  propriétaire  pour  plus  de
       détails.

       Le champ fmr_offset contient l'adresse logique sur l'enregistrement du plan en octets. Ce champ n'a aucun
       sens si les attributs FMR_OF_SPECIAL_OWNER ou FMR_OF_EXTENT_MAP sont positionnés dans fmr_flags.

       Le champ fmr_length contient la longueur du domaine en octets.

       Le champ fmr_flags est un masque de bit des attributs d'état du domaine. Les bits sont :

           FMR_OF_PREALLOC
                  Le domaine est alloué mais pas encore écrit.

           FMR_OF_ATTR_FORK
                  Ce domaine contient des données d'attributs étendus.

           FMR_OF_EXTENT_MAP
                  Ce domaine contient des informations sur le plan de domaine pour le propriétaire.

           FMR_OF_SHARED
                  Certaines parties de ce domaine peuvent être partagées.

           FMR_OF_SPECIAL_OWNER
                  Le champ fmr_owner contient une valeur spéciale et non un numéro d'inœud.

           FMR_OF_LAST
                  Il s'agit du dernier enregistrement du jeu de données.

       Le champ fmr_reserved sera positionné à zéro.

   valeur du propriétaire
       Généralement, la valeur du champ fmr_owner pour les domaines qui ne sont pas des métadonnées devrait être
       un  numéro  d'inœud.  Cependant,  les  systèmes  de  fichiers ne sont pas obligés de signaler les numéros
       d'inœud ; ils peuvent plutôt renvoyer FMR_OWN_UNKNOWN si le numéro d'inœud  ne  peut  pas  être  récupéré
       facilement,  si l'appelant n'a pas assez de privilèges, si le système de fichiers ne gère pas les numéros
       d'inœud stables, ou pour toute autre raison. Si un système de fichiers souhaite conditionner l'envoi  des
       numéros  d'inœuds  aux  capacités  du  processus,  il  est  fortement  recommandé  d'utiliser la capacité
       CAP_SYS_ADMIN à cette fin.

       Les valeurs spéciales de propriétaire suivantes sont communes à tous les systèmes de fichiers :

           FMR_OWN_FREE
                  Espace libre.

           FMR_OWN_UNKNOWN
                  Ce domaine est utilisé  mais  son  propriétaire  n'est  pas  connu  ou  n’est  pas  facilement
                  récupérable.

           FMR_OWN_METADATA
                  Ce domaine est une métadonnée d'un système de fichiers.

       XFS peut renvoyer les valeurs spéciales de propriétaire suivantes :

           XFS_FMR_OWN_FREE
                  Espace libre.

           XFS_FMR_OWN_UNKNOWN
                  Ce  domaine  est  utilisé  mais  son  propriétaire  n'est  pas  connu  ou n’est pas facilement
                  récupérable.

           XFS_FMR_OWN_FS
                  Les métadonnées de système de fichiers statiques qui existent à une adresse fixe. Il s'agit de
                  superblocs AG et des en-têtes AGF, AGFL et AGI.

           XFS_FMR_OWN_LOG
                  Le journal du système de fichiers.

           XFS_FMR_OWN_AG
                  Métadonnées du groupe d'allocation telles que les btrees de l'espace libre ou du rétro-plan.

           XFS_FMR_OWN_INOBT
                  L'inœud et les btrees de l'inœud libre.

           XFS_FMR_OWN_INODES
                  Enregistrements de l'inœud.

           XFS_FMR_OWN_REFC
                  Informations du compte de référence.

           XFS_FMR_OWN_COW
                  Ce domaine est utilisé pour préparer une copie sur écriture.

           XFS_FMR_OWN_DEFECTIVE:
                  Cette extension a été marquée comme étant défectueuse, soit par le système de  fichiers,  soit
                  par le périphérique sous-jacent.

       ext4 peut renvoyer les valeurs spéciales de propriétaire :

           EXT4_FMR_OWN_FREE
                  Espace libre.

           EXT4_FMR_OWN_UNKNOWN
                  Ce  domaine  est  utilisé  mais  son  propriétaire  n'est  pas  connu  ou n’est pas facilement
                  récupérable.

           EXT4_FMR_OWN_FS
                  Métadonnées du système de fichiers statiques qui existent à une adresse  fixe.  Il  s'agit  du
                  superbloc et des descripteurs de groupe.

           EXT4_FMR_OWN_LOG
                  Le journal du système de fichiers.

           EXT4_FMR_OWN_INODES
                  Enregistrements de l'inœud.

           EXT4_FMR_OWN_BLKBM
                  Plan de bit de bloc.

           EXT4_FMR_OWN_INOBM
                  Plan de bit d'inœud.

VALEUR RENVOYÉE

       En cas d'erreur, la valeur de retour est -1 et errno est définie pour préciser l'erreur.

ERREURS

       L'erreur inscrite dans errno peut être, entre autres, une des suivantes :

       EBADF  fd n'est pas ouvert en lecture.

       EBADMSG
              Le système de fichiers a détecté une erreur de somme de contrôle dans les métadonnées.

       EFAULT Le pointeur fourni ne correspond à aucune adresse mémoire valable.

       EINVAL Le  tableau  n'est  pas assez long, les clés ne pointent pas vers une partie valable du système de
              fichiers, la clé basse pointe vers un point de l'espace d'adresses de stockage physique du système
              de fichiers plus élevé que la clé haute ou une valeur non nulle a été inscrite dans un  champ  qui
              doit contenir zéro.

       ENOMEM Pas assez de mémoire pour traiter l'opération.

       EOPNOTSUPP
              Le système de fichiers ne prend pas en charge cette opération.

       EUCLEAN
              Les métadonnées du système de fichiers sont corrompues et doivent être réparées.

STANDARDS

       Linux.

       Tous les systèmes de fichiers ne la gèrent pas.

HISTORIQUE

       Linux 4.12.

EXEMPLES

       Voir io/fsmap.c dans les xfsprogs pour un programme d'exemple.

VOIR AUSSI

       ioctl(2)

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous  découvrez  un  bogue  dans la traduction de cette page de manuel, veuillez envoyer un message à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.8                       2 mai 2024                                  ioctl_getfsmap(2)