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