| Skip Navigation Links | |
| Exit Print View | |
|
Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual Sun QFS and Sun Storage Archive Manager 5.3 Information Library |
1. User Commands (Man Pages Section 1)
2. Maintenance Commands (Man Pages Section 1M)
3. Library Functions (Man Pages Section 3)
4. Library Functions (Man Pages Section 3X)
5. File Formats (Man Pages Section 4)
NAME
sam_setfa - Sets attributes on a file or directory
SYNOPSIS
cc [ flag ... ] file ... -L/opt/SUNWsamfs/lib -lsam [library ... ]
#include "/opt/SUNWsamfs/include/lib.h"
int sam_setfa(const char *path, const char *ops);
DESCRIPTION
sam_setfa() sets attributes on a file or directory using a
SAM-QFS system call. path is the file on which to set the
attributes. ops is the character string of options, for
example: "ds1". Individual options are described below.
OPTIONS
A n Specifies the number of bytes to be allocated ahead of
a write to the file. The n must be an integer and must
be greater than or equal to one kilobyte and less than
4 terabytes. The n is rounded down to units of kilo-
bytes. This option is only valid for a regular file.
This option should be used when writing large files
where more sequential allocation is desired. Note,
when the file is closed the blocks are reset to the
size of the file.
B Specifies the direct I/O attribute be permanently
cleared for this file. This means data is transferred
indirectly between the user's buffer and disk through
the system's page cache. The default I/O mode is buf-
fered (uses the page cache). The directio attribute is
persistent, remaining until specifically cleared or
reset. See directio(3C) for Solaris 2.6 and above for
more details.
d Return the file attributes on the file to the default,
i.e. the stripe is reset to the mount default. When
this option is specified, the attributes are reset to
the default. If it is used, it should be the first
character in the string.
D Specifies the direct I/O attribute be permanently set
for this file. This means data is transferred directly
between the user's buffer and disk. This attribute
should only be set for large block aligned sequential
I/O. The default I/O mode is buffered (uses the page
cache). Direct I/O will not be used if the file is
currently memory mapped. The directio attribute is
persistent, remaining until specifically cleared or
reset. See directio(3C) for Solaris 2.6 and above for
more details.
g n Specifies the number of the striped group where the
file is to be preallocated. n is a number 0 .. 127. n
must be a striped_group defined in the file system.
l n Specifies the number of bytes to be preallocated to the
file. The n must be an integer. This option can only
be applied to a regular file. If an I/O event attempts
to extend a file preallocated with the L option, the
caller receives an ENXIO error. The l option allocates
using extent allocation. This means striping is not
supported and the file is allocated on 1 disk device or
1 striped group. The L and l options are mutually
exclusive. If the file has existing disk blocks, this
option is changed to the L option.
L n Specifies the number of bytes to be preallocated to the
file. The n must be an integer. This option is only
valid for a regular file. The L option allocates using
standard allocation. This means striping is supported.
This also means the file can be extended. The L and l
options are mutually exclusive.
q Specifies that this file will be linked to the pseudo
character device driver, samaio, for the purpose of
issuing asynchronous I/O. Note, this option also sets
Direct I/O and qwrite. Setting this option may result
in greater performance.
s n Specifies the number of allocation units to be allo-
cated before changing to the next unit. If n is 1,
this means the file will stripe across all units with 1
disk allocation unit (DAU) allocated per unit. If n
is 0, this means the file will be allocated on one unit
until that unit has no space. The default stripe is
specified at mount. (see mount_samfs(1M)). Note, EIN-
VAL is returned if the user sets stripe > 0 and
mismatched stripe groups exist. Mismatched stripe
groups means all striped groups do not have the same
number of partitions. Striping across mismatched
stripe groups is not allowed.
RETURN VALUES
Upon successful completion a value of 0 is returned. Other-
wise, a value of -1 is returned and errno is set to indicate
the error.
ERRORS
sam_setfa() fails if one or more of the following are true:
EINVAL An invalid option was specified, or the
file is neither a regular file nor a
directory.
EPERM Not the owner or superuser.
EFAULT path or ops points to an illegal
address.
EINTR A signal was caught during the
sam_setfa() function.
ELOOP Too many symbolic links were encountered
in translating path.
EMULTIHOP Components of path require hopping to
multiple remote machines and the file
system does not allow it.
ENAMETOOLONG The length of the path argument exceeds
{PATH_MAX}, or the length of a path com-
ponent exceeds {NAME_MAX} while
{_POSIX_NO_TRUNC} is in effect.
ENOENT The named file does not exist or is the
null pathname.
ENOLINK path points to a remote machine and the
link to that machine is no longer
active.
ENOTDIR A component of the path prefix is not a
directory.
SEE ALSO
setfa(1), ssum(1).
mount_samfs(1M).
sam_advise(3), sam_ssum(3).
directio(3C).