Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vxfsio(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getrlimit(2)

ioctl(2)

ulimit(2)

vxfsio(7)                          (VxFS)                         vxfsio(7)

NAME
     vxfsio - Kontrollfunktionen des VxFS-Dateisystems

SYNTAX
     #include <sys/types.h>
     #include <sys/fs/vxioctl.h>

     int ioctl(int fildes, int cmd, arg);

BESCHREIBUNG
     Die Erweiterungen des ioctl(2)-Systemaufrufs für Veritas erlauben eine
     erhöhte Kontrolle über geöffnete Dateien.

     Das Argument fildes ist ein Dateideskriptor für offene Dateien.

     Datentyp und Wert von arg sind vom Typ des Kommandos cmd abhängig.
     Ohne Angaben wird arg als int Datentyp behandelt. Die symbolischen
     Namen für die Kommandos und Dateistatus-Bytes sind in der Header-Datei
     <sys/fs/vxioctl.h> definiert.

     Folgende Erweiterungen gibt es:

     VXSETCACHE
          Setzen des gewünschten Verfahrens der Datenpufferung. Die ver-
          schiedenen Verfahren der Datenpufferung erlauben einer Anwendung
          dem Dateisystem zu zeigen, welche Form der Datenpufferung die
          günstigste wäre. Die Werte für arg erlauben die Angabe mehrerer
          Verfahren der Datenpufferung durch Setzen der Werte in Kombina-
          tion mit logischen OR-Operationen. Mögliche Werte für arg sind:

          VXRANDOM
               Zeigt an, daß wahlfrei auf die Datei zugegriffen werden
               soll. Ein Einlesen der maximalen Datenmenge soll nicht vor-
               genommen werden.

          VXSEQ
               Zeigt an, daß sequentiell auf die Datei zugegriffen werden
               soll. Ein Einlesen der maximalen Datenmenge soll vorgenommen
               werden.

          VXDIRECT
               Zeigt an, daß alle Daten, die sich auf Schreib- oder Lesezu-
               griffe beziehen, ohne Datenpufferung in oder aus dem
               Benutzer-Puffer übertragen werden sollen. Wenn diese Option
               wirksam ist, müssen alle E/A-Operationen an den Blockgrenzen
               beginnen und sich über ein Vielfaches der Blockgröße
               erstrecken. Der Datenpuffer, der die E/A-Operationen ver-
               sorgt, muß sich an einer Seitengrenze ausrichten.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

               Ist bei einer E/A-Anforderung keine Ausrichtung möglich,
               oder wird auf die Datei gerade zugegriffen, wird die E/A-
               Anforderung als eine datensynchrone E/A-Operation durchge-
               führt.

          VXNOREUSE
               Zeigt an, daß die gepufferten Daten nicht mehr festgehalten
               werden müssen. Die Anwendung benötigt die Daten nicht mehr.

          VXDSYNC
               Zeigt an, daß der datensynchrone E/A-Modus verwendet werden
               soll. In diesem Modus kehrt eine Schreiboperation zum aufru-
               fenden Prozeß zurück, nachdem die Daten auf ein externes
               Medium übertragen wurden. Die I-Node wird dabei nicht syn-
               chron aktualisiert, wenn nur die Zugriffszeit verändert wer-
               den muß.

               Nur eine der drei Optionen VXRANDOM, VXSEQ oder VXDIRECT
               kann angegeben werden. Die Optionen VXNOREUSE und VXDSYNC
               dürfen nicht in Verbindung mit VXDIRECT verwendet werden.
               Die Verfahren zur Datenpufferung für eine Datei werden
               dateiweise unterstützt. Ein Prozeß, der das Verfahren der
               Datenpufferung verändert, hat Auswirkungen auf die E/A-
               Operationen aller Prozesse, die momentan auf die Datei
               zugreifen.

          Der ioctl-Aufruf VXSETCACHE gibt den Wert 0 zurück, wenn die
          Verfahren zur Datenpufferung erfolgreich gesetzt wurden. Wenn der
          Vorgang nicht erfolgreich war, ist der Rückgabewert -1 und die
          externe Variable errno liefert eine Diagnosemeldung der folgenden
          Form:

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei
               oder die Kombination der Verfahren zur Datenpufferung ist
               ungültig.

     VXGETCACHE
          Einschalten der Verfahren zur Datenpufferung für eine Datei. Das
          Argument arg sollte ein Zeiger auf den Datentyp int sein.

          Der ioctl-Aufruf VXGETCACHE gibt den Wert 0 zurück, wenn auf die
          Verfahren zur Datenpufferung erfolgreich zugegriffen werden
          konnte. Wenn der Vorgang nicht erfolgreich war, ist der Rückgabe-
          wert -1 und die externe Variable errno liefert eine Diagnosemel-
          dung der folgenden Form:








Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei.

     VXSETEXT
          Setzen der Information über Speicherbereiche anhand der Parame-
          ter, die mit arg festgelegt wurden. Das Argument arg zeigt auf
          eine Struktur vom Typ vxext, die in der Datei
          <sys/fs/vxioctl.h> definiert ist und die folgenden Elemente ent-
          hält:

          offt   extsize;     /* extent size */
          offt   reserve;      /* space reservation */
          int     aflags;      /* allocation flags */

          Das Element extsize wird verwendet, um eine feste Größe des
          Speicherbereichs in Blöcken für die Datei anzufordern. Wenn keine
          feste Größe des Speicherbereichs benötigt wird, sollte eine Null
          eingetragen werden, um das Standard-Zuweisungsverfahren zu akti-
          vieren. Wenn die Datei bereits indirekte Blöcke enthält, haben
          Änderungen der festen Größe des Speicherbereichs keine Auswir-
          kung, es sei denn, daß alle aktuellen indirekten Blöcke durch
          Dateiabschneidung und/oder Aufhebung der Reservierung freigegeben
          werden.

          Das Element reserve wird verwendet, um den Platz zu reservieren,
          der der Datei zugewiesen werden soll. Ist der Wert von reserve
          größer als die aktuelle Reservierung, dann wird die Zuweisung für
          die Datei auf einen Wert erhöht, der zum Wert von reserve paßt.
          Wenn der Wert von reserve kleiner ist als die aktuelle Reservie-
          rung, dann wird der Wert für die Zuweisung herabgesetzt. Die
          Zuweisung kann nie kleiner werden als die aktuelle Dateigröße.

          Die Dateireservierung kann nicht über den ulimit(2)-Wert des auf-
          rufenden Prozesses hinaus erhöht werden. Gleichwohl wird eine
          bereits existierende Reservierung nicht an den ulimit(2)-Wert des
          aufrufenden Prozesses angepaßt. Die Reservierung von Speicher-
          platz für vorhandene unvollständige Dateien führt nicht dazu, daß
          Blöcke zugewiesen werden, um die Lücken aufzufüllen. Die Blöcke
          werden statt dessen nach dem Ende der Datei zugeordnet. Dadurch
          kann es zu einer größeren Reservierung für eine Datei kommen, als
          die Datei Blöcke hat.

          Die Reservierung ist unabhängig von der Größe der Datei, da die
          Reservierung bereits vorher den Speicherplatz für eine Datei
          festlegt. Das Element aflags zeigt an, welche Art der Reservie-
          rung erforderlich ist. Es stehen zur Auswahl:

          VXNOEXTEND
               Die Datei wird nicht erweitert, wenn die aktuelle Reservie-
               rung überschritten wurde. Die Reservierung kann, wenn nötig,
               beim nächsten Aufruf erhöht werden. Jedoch wird die Datei
               nicht automatisch erweitert.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          VXTRIM
               Die Reservierung für die Datei wird der aktuellen Dateigröße
               angepaßt nachdem der letzte Prozeß, der auf die geöffnete
               Datei zugreift, beendet wurde.

          VXCONTIGUOUS
               Die Reservierung muß fortlaufend zugeordnet werden (als eine
               einfache Speichererweiterung). extsize bestimmt die feste
               Speicherbereichsgröße für die folgenden Zuordnungen, hat
               aber keine Auswirkung auf die aktuelle Zuordnung. Es kann
               keine Reservierung vorgenommen werden, wenn die Datei indi-
               rekte Speicherbereiche belegt, es sei denn, daß der angefor-
               derte Platzbedarf der gleiche ist wie der für die indirekte
               Speicherbereichsgröße. Die Aufforderung, eine fortlaufende
               Zuweisung auf eine Datei ohne Inhalt vorzunehmen, wird igno-
               riert.

          VXALIGN
               Ausrichten aller neuen Speicherbereiche an der Grenze
               extsize, relativ zum Anfangsblock einer Zuweisungseinheit.
               Wenn VXCONTIGUOUS gesetzt ist, unterliegt der einfache
               Speicherbereich, der während des Aufrufs zugewiesen wird,
               nicht der Ausrichtungsbegrenzung.

          VXNORESERVE
               Die Reservierung soll als eine bedingte Zuweisung zur Datei
               vorgenommen werden. Die I-Node wird nicht mit der Reservie-
               rung aktualisiert, so daß die Reservierung nach einem Syste-
               mabsturz nicht mehr gültig ist. Bis zu dem Zeitpunkt, an dem
               die Datei geschlossen wird, ist die Reservierung fest an die
               Datei gebunden. Danach wird die Reservierung der aktuellen
               Dateigröße angepaßt.

          VXCHGSIZE
               Die Reservierung soll sofort in die Datei eingetragen wer-
               den. In der I-Node der Datei werden die Informationen über
               die Größe der Datei und die Anzahl der Blöcke aktualisiert,
               damit die Erhöhung durch den reservierten Speicherplatz
               sofort berücksichtigt werden kann. Anders als bei dem Funk-
               tionsaufruf fcntl mit der FFREESP Operation [siehe
               fcntl(2)] wird der Speicherplatz in der Datei nicht initia-
               lisiert.

               Diese Operation kann nur von einem Benutzer mit den Root-
               Zugriffsrechten ausgeführt werden.

          Um Speicherbereichsinformationen setzen zu können, ist die
          Schreibberechtigung auf die Datei erforderlich. Dagegen kann
          jeder Prozeß, der die Datei öffnen kann, die Informationen auch
          lesen. Speicherbereichsinformationen lassen sich nur auf reguläre
          Dateien anwenden. Pro Datei ist nur ein Satz an Speicherbereich-
          sinformationen zugelassen. Die Speicherbereichsinformation wird


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          Teil der I-Node-Informationen auf der Festplatte und bleibt auch
          nach einem Neuladen bestehen. Die einzige Ausnahme bilden die
          oben genannten Fälle von bedingten Zuweisungen (siehe
          VXNORESERVE).

          Wenn die Speicherbereichsinformation erfolgreich gesetzt wurde,
          gibt der ioctl-Aufruf VXSETEXT den Wert 0 zurück. Wenn der Vor-
          gang nicht erfolgreich war, ist der Rückgabewert -1 und die
          externe Variable errno liefert Diagnosemeldungen der folgenden
          Form:

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei
               oder die Speicherbereichsinformation ist ungültig.

          EACCESS
               Der aufrufende Prozeß besitzt keinen Schreibzugriff auf die
               Datei, die durch fildes angegeben wurde.

          EFBIG
               Es wurde der Versuch unternommen, mehr Speicherplatz zu
               reservieren, als für diesen Prozeß erlaubt ist.
































Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

     VXGETEXT
          Ausgeben der Speicherbereichsinformation. Gibt die Speicherbe-
          reichsinformation zurück, die mit der Datei fildes verbunden ist.
          Das Argument arg zeigt auf eine Struktur vom Typ vxext, wie sie
          in der Datei <sys/fs/vxioctl.h> definiert ist.

          Der ioctl-Aufruf VXGETEXT gibt den Wert 0 zurück, wenn auf die
          Speicherbereichsinformation erfolgreich zugegriffen werden
          konnte. Wenn der Vorgang nicht erfolgreich war, ist der Rückgabe-
          wert -1 und die externe Variable errno liefert eine Diagnosemel-
          dung der folgenden Form:

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei.

     VXGETFSOPT
          Ausgeben der Dateisystemoptionen. Das Argument arg sollte ein
          Zeiger auf den Datentyp int sein. Dieses Kommando kann von jedem
          Benutzer verwendet werden, der die Root-I-Node des Dateisystems
          öffnen kann. Folgende Optionen werden nach arg zurückgegeben:

          VXFSOBLKCLEAR
               Zeigt an, daß alle neu zugewiesenen Blöcke mit Nullen ausge-
               füllt werden.

          VXFSOCACHECLOSESYNC
               Zeigt an, daß jede nicht-protokollierte Änderung der I-Node
               oder der Daten auf die Festplatte geschrieben wird, wenn die
               Datei geschlossen wird.

          VXFSOCACHEDIRECT
               Zeigt an, daß jede nicht-synchrone E/A behandelt wird, als
               sei das Verfahren zur Datenpufferung mit VXDIRECT für die
               Datei gesetzt. Auch jede nicht-protokollierte Änderung der
               I-Node oder der Daten wird auf die Festplatte geschrieben,
               wenn die Datei geschlossen wird.

          VXFSOCACHEDSYNC
               Zeigt an, daß alle Schreibzugriffe, die weder mit der OSYNC
               noch der VXDIRECT-Datenpufferung arbeiten, so behandelt
               werden, als ob die VXDSYNC-Datenpufferung für die Datei
               gesetzt wäre. Auch jede nicht-protokollierte Änderung der
               I-Node oder der Daten wird auf die Festplatte geschrieben,
               wenn die Datei geschlossen wird.

          VXFSONODATAINLOG
               Zeigt an, daß die Absichts-Protokollierung der Benutzerdaten
               für synchrone Schreibzugriffe nicht aktiviert ist.

          VXFSONOLOG
               Zeigt an, daß die Absichts-Protokollierung struktureller
               Änderungen des Dateisystems nicht aktiviert ist.


Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          VXFSOOSYNCCLOSESYNC
               Zeigt an, daß jede nicht-protokollierte Änderung der I-Node
               oder der Daten auf die Festplatte geschrieben wird, wenn die
               Datei, auf die mit OSYNC zugegriffen wurde, geschlossen
               wird.

          VXFSOOSYNCDIRECT
               Zeigt an, daß jede E/A mit OSYNC behandelt wird, als sei
               statt dessen das Verfahren zur Datenpufferung mit VXDIRECT
               für die Datei gesetzt. Auch jede nicht-protokollierte Ände-
               rung der I-Node oder der Daten wird auf die Festplatte
               geschrieben, wenn die Datei, auf die mit OSYNC zugegriffen
               wurde, geschlossen wird.

          VXFSOOSYNCDSYNC
               Zeigt an, daß alle Schreibzugriffe, die mit OSYNC arbeiten,
               so behandelt werden, als ob statt dessen die VXDSYNC-
               Datenpufferung für die Datei gesetzt wäre. Auch jede nicht-
               protokollierte Änderung der I-Node oder der Daten wird auf
               die Festplatte geschrieben, wenn die Datei, auf die mit
               OSYNC zugegriffen wurde, geschlossen wird.

          VXFSOSNAPPED
               Zeigt an, daß gerade eine Datensicherung der Momentaufnahme
               des Dateisystems durchgeführt wird.

          VXFSOSNAPSHOT
               Zeigt an, daß dieses Dateisystem die Datensicherung der
               Momentaufnahme eines anderen Dateisystems ist.

          Der ioctl-Aufruf VXGETFSOPT gibt den Wert 0 zurück, wenn auf die
          Dateisystemoptionen erfolgreich zugegriffen werden konnte. Wenn
          der Vorgang nicht erfolgreich war, ist der Rückgabewert -1 und
          die externe Variable errno liefert eine Diagnosemeldung der fol-
          genden Form:

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei.
















Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

     VXFREEZE
          Synchronisiert und friert dann das Dateisystem ein. Es werden
          alle weiteren Operationen auf das Dateisystem blockiert, bis eine
          VXTHAW-Operation empfangen wird. Das Argument arg ist ein Wert
          für die Zeitüberschreitung in Sekunden. Wird im angegebenen Zei-
          tintervall keine VXTHAW-Operation empfangen, dann wird vom
          Dateisystem automatisch eine VXTHAW-Operation durchführt.

          Dieses Komando kann nur von einem Benutzer mit den geeigneten
          Zugriffsrechten auf das Root-Verzeichnis des Dateisystems ausge-
          führt werden.

          Der ioctl-Aufruf VXFREEZE gibt den Wert 0 zurück, wenn das
          Dateisystem erfolgreich eingefroren wurde. Wenn der Vorgang nicht
          erfolgreich war, ist der Rückgabewert -1 und die externe Variable
          errno liefert eine Diagnosemeldung der folgenden Form:

          EINVAL
               Der bei arg angegebene Wert für die Zeitüberschreitung ist
               kleiner als 1.

     VXTHAW
          Freigeben eines Dateisystems, das mit einer VXFREEZE-Operation
          eingefroren wurde. Das Argument arg muß den Wert NULL haben. Der
          Prozeß, der die VXTHAW-Operation aussendet, muß das Root-
          Verzeichnis des Dateisystems geöffnet haben. Außerdem muß sicher-
          gestellt sein, daß er nicht auf das Dateisystem zugreift, nachdem
          es eingefroren wurde. Sonst würde der Prozeß selbst das Dateisy-
          stem blockieren.

          Dieses Komando kann nur von einem Benutzer mit den Zugriffsrech-
          ten auf das Root-Verzeichnis des Dateisystems ausgeführt werden.

          Der ioctl-Aufruf VXTHAW gibt den Wert 0 zurück, wenn das Datei-
          system erfolgreich freigegeben wurde. Wenn der Vorgang nicht
          erfolgreich war, ist der Rückgabewert -1 und die externe Variable
          errno liefert eine Diagnosemeldung der folgenden Form:

          EAGAIN
               Das Dateisystem ist nicht eingefroren.














Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

     VXEXPAND
          Erweitern des Dateisystems. Das Argument arg gibt die gewünschte
          Größe des Dateisystems in Blöcken an.

          Dieses Kommando kann nur von einem Benutzer mit den entsprechen-
          den Zugriffsrechten für das Root-Verzeichnis des Dateisystems
          ausgeführt werden.

          Der ioctl-Aufruf VXEXPAND gibt den Wert 0 zurück, wenn das
          Dateisystem erfolgreich erweitert wurde. Wenn der Vorgang nicht
          erfolgreich war, ist der Return-Wert -1 und die externe Variable
          errno liefert eine allgemeine Diagnosemeldung oder eine Meldung
          der folgenden Form:

          EROFS
               Das Dateisystem ist nur zum Lesen (read-only) eingehängt.

          EINVAL
               Die angeforderte Größe für das Dateisystem ist nicht größer
               als die des aktuellen Dateisystems, oder sie überschreitet
               die unterstützte Maximalgröße des Dateisystems.

     VXDIRSORT
          Sortieren und Komprimieren einer Gruppe von Verzeichnisblöcken.
          Das Argument arg zeigt auf eine Struktur vom Typ dirsort, die in
          der Datei <sys/fs/vxioctl.h> definiert ist und die folgenden
          Elemente enthält:

      #define  VXDIRSORTBUFS 2           /* number of directory buffers */
      inot    dirinode;                 /* inode number of directory */
      daddrt  diroff[VXDIRSORTBUFS];   /* block offset in directory */
      daddrt  dirbno[VXDIRSORTBUFS];   /* original block numbers */
      daddrt  diribuf[VXDIRSORTBUFS];  /* original block contents */
      daddrt  dirobuf[VXDIRSORTBUFS];  /* new block contents */
      daddrt  dirolen[VXDIRSORTBUFS];  /* new length of blocks */

          Die über dirinode angegebene I-Node des Verzeichnisses wird neu
          organisiert. Die Blöcke dirblkoff und dirblkoff + 1 innerhalb
          des Verzeichnisses werden gelesen. Wenn die Verzeichniseinträge
          in diesen Blöcken mit den Verzeichniseinträgen in dirbuf iden-
          tisch sind, werden sie neu sortiert, so daß sie mit der Reihen-
          folge in dirbuf übereinstimmen.

          Wenn das neu sortierte Verzeichnis in die direkten I-Node-Daten
          paßt ["immediate data"; kein Verweis auf Blocknummer, Daten ste-
          hen direkt in der I-Node; siehe inode(4-vxfs)], wird es in den
          Bereich für die I-Node-Daten gestellt, und der Verzeichnisblock
          wird freigegeben. Wenn nach dem Neusortieren der letzte Block im
          Verzeichnis frei bleibt, wird dieser Block freigegeben.





Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          Dieses Kommando kann nur von einem Benutzer mit den entsprechen-
          den Zugriffsrechten für das Root-Verzeichnis des Dateisystems
          ausgeführt werden.

          Der ioctl-Aufruf VXDIRSORT gibt den Wert 0 zurück, wenn die
          Anweisungen für das Pufferungsverhalten erfolgreich gesetzt wur-
          den. Wenn der Vorgang nicht erfolgreich war, ist der Return-Wert
          -1 und die externe Variable errno liefert eine allgemeine Diagno-
          semeldung oder eine Meldung der folgenden Form:

          EINVAL
               Ein Element der Struktur dirsort ist ungültig.

          ENOTDIR
               Bei der durch dirinode angegebenen Datei handelt es sich
               nicht um ein Verzeichnis.

          EBUSY
               Der Inhalt des aktuellen Verzeichnisses entspricht nicht dem
               in der Struktur dirsort angegebenen Inhalt.

     VXEXTREORG
          Neuorganisieren einer Gruppe von Speicherbereichen in einer
          Datei. Das Argument arg zeigt auf eine Struktur vom Typ extreorg,
          die in der Datei <sys/fs/vxioctl.h> definiert ist und die fol-
          genden Elemente enthält:

      inot            extinum;      /* inode number */
      long             extigen;      /* generation count of file */
      offt            extisize;     /* size of file in blocks */
      offt            extiblocks;   /* blocks held by file */
      offt            extoffset;    /* offset in file to reallocate from */
      offt            extsize;      /* number of blocks to reallocate */
      struct extalloc  extalloc[5];  /* type of reallocation to do */
      struct dinode    *extinode;    /* pointer to inode */

          Der Versuch, Speicherbereiche in der von extinum angegebenen
          Datei neu zuzuweisen. Die Felder extigen, extisize und
          extiblocks werden verwendet, um die Gültigkeit der I-Node zu
          überprüfen. Sind diese Felder ungleich Null, und entsprechen sie
          nicht den Werten in der I-Node, schlägt die Neuorganisation fehl.

          Die Felder extoffset und extsize definieren einen Bereich der
          Datei. Der ioctl-Aufruf versucht, neue Speicherbereiche für die-
          sen Bereich zuzuweisen. Bei erfolgreicher Zuweisung werden die
          Daten der Datei in die neuen Speicherbereiche kopiert, und die
          alten Speicherbereiche für diesen Bereich werden freigegeben.
          Dieses Verfahren kann verwendet werden, um Dateien zu verschie-
          ben, oder um kleine Bereiche zusammenzufassen und so die Fragmen-
          tierung zu verringern.




Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          Das Array extalloc von extalloc-Strukturen legt fest, wie die
          Neuzuweisung vorgenommen wird. Die Struktur extalloc ist in der
          Datei <sys/fs/vxioctl.h> definiert und enthält die folgenden
          Elemente:

      long     extcmd;        /* type of reallocation */
      long     extflag;       /* flag indicating search direction */
      daddrt  extstart;      /* starting block for search */
      daddrt  extend;        /* ending block for search */
      long     extnextents;   /* max number of extents to allocate */

          Das Feld extcmd legt den Typ für die durchzuführende Suche fest.
          Die folgenden Werte sind möglich:

          EXTSEARCH
               Durchsuchen des Bereichs vom Anfang (extstart) bis zum Ende
               (extend) für einen Speicherbereich aus extsize Blöcken.
               Das Feld extflag steuert die Richtung der Suche. Ist
               extflag gleich EXTFORWARD, wird von extstart bis extend
               gesucht. Ist extflag gleich EXTBACKWARD, wird von extend
               bis extstart gesucht. Wird bei der Suche das Ende des
               Dateisystems erreicht, wird sie am anderen Ende wieder auf-
               genommen.

          EXTPREALLOC
               Verwendet den Algorithmus des Kerns zur Vorbelegung von
               Speicherplatz, um Speicherbereiche aus insgesamt extsize
               Blöcken zuzuweisen. Wenn mehr als extnextents erforderlich
               sind, schlägt der Versuch fehl.

          Alle durch die Neuzuweisung zugewiesenen Speicherbereiche müssen
          den für alle Dateien geltenden Begrenzungen hinsichtlich
          Bereichsgröße, Ausrichtung und fortlaufender Zuordnung entspre-
          chen.

          Das Feld extinode ist ein Zeiger auf eine Platten-I-Node-
          Struktur. Hat das Feld nicht den Wert NULL, wird die neue I-Node
          bei erfolgreicher Neuzuweisung in die angegebene dinode-Struktur
          kopiert, die in der Datei <sys/fs/vxinode.h> definiert ist.

          Dieses Kommando kann nur von einem Benutzer mit den entsprechen-
          den Zugriffsrechten für das Root-Verzeichnis des Dateisystems
          ausgeführt werden.

          Der ioctl-Aufruf VXEXTREORG gibt den Wert 0 zurück, wenn alle
          Versuche einer Neuzuweisung fehlgeschlagen sind. Ist eine Neuzu-
          weisung ausgeführt worden, wird der Wert 1 und der Index des
          erfolgreichen Kommandos für die Neuzuweisung im Array extalloc
          ausgegeben. Wenn der Vorgang nicht erfolgreich war, ist der
          Return-Wert -1, und die externe Variable errno liefert eine all-
          gemeine Diagnosemeldung oder eine Meldung der folgenden Form:



Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

vxfsio(7)                          (VxFS)                         vxfsio(7)

          EINVAL
               Die durch fildes angegebene Datei ist keine reguläre Datei.
               Die durch fildes angegeben Datei hat indirekte Speicherbe-
               reiche zugewiesen. Die Dateigröße, Blockzuordnung oder Gene-
               rierungsnummer stimmt nicht mit der entsprechenden Angabe in
               der Struktur extreorg überein.

DIAGNOSE
     Folgenden Werte werden beim Versagen einer Operation in die Variable
     errno eingetragen.

     EPERM
          Der Prozeß besitzt nicht die geeigneten Zugriffsrechte.

     ENODEV
          Bei der mit fildes spezifizierten Datei handelt es sich nicht um
          das Root-Verzeichnis eines VxFS-Dateisystems.

     EROFS
          Das Dateisystem ist nur zum Lesen eingehängt.

     EIO  Während des Versuchs, eine Operation auszuführen, ist ein E/A-
          Fehler aufgetreten.

     ENOSPC
          Auf den angeforderten Speicherplatz konnte nicht zugegriffen wer-
          den.

     EFAULT
          Eine durch ein Argument spezifizierte Adresse ist ungültig.

SIEHE AUCH
     getrlimit(2), ioctl(2), ulimit(2).





















Seite 12                     Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026