FreeBSD ZFS
The Zettabyte File System
|
#include <sys/list.h>
#include <sys/dmu.h>
#include <sys/sa.h>
#include <sys/zfs_vfsops.h>
#include <sys/rrwlock.h>
#include <sys/zfs_sa.h>
#include <sys/zfs_stat.h>
#include <sys/zfs_acl.h>
#include <sys/zil.h>
#include <sys/zfs_vfsops.h>
#include <sys/zfs_sa.h>
Go to the source code of this file.
Data Structures | |
struct | zfs_dirlock |
Directory Entry Locks. More... | |
struct | znode |
Defines | |
#define | ZFS_ATTR_SET(zp, attr, value, pflags, tx) |
#define | SA_ZPL_ATIME(z) z->z_attr_table[ZPL_ATIME] |
#define | SA_ZPL_MTIME(z) z->z_attr_table[ZPL_MTIME] |
#define | SA_ZPL_CTIME(z) z->z_attr_table[ZPL_CTIME] |
#define | SA_ZPL_CRTIME(z) z->z_attr_table[ZPL_CRTIME] |
#define | SA_ZPL_GEN(z) z->z_attr_table[ZPL_GEN] |
#define | SA_ZPL_DACL_ACES(z) z->z_attr_table[ZPL_DACL_ACES] |
#define | SA_ZPL_XATTR(z) z->z_attr_table[ZPL_XATTR] |
#define | SA_ZPL_SYMLINK(z) z->z_attr_table[ZPL_SYMLINK] |
#define | SA_ZPL_RDEV(z) z->z_attr_table[ZPL_RDEV] |
#define | SA_ZPL_SCANSTAMP(z) z->z_attr_table[ZPL_SCANSTAMP] |
#define | SA_ZPL_UID(z) z->z_attr_table[ZPL_UID] |
#define | SA_ZPL_GID(z) z->z_attr_table[ZPL_GID] |
#define | SA_ZPL_PARENT(z) z->z_attr_table[ZPL_PARENT] |
#define | SA_ZPL_LINKS(z) z->z_attr_table[ZPL_LINKS] |
#define | SA_ZPL_MODE(z) z->z_attr_table[ZPL_MODE] |
#define | SA_ZPL_DACL_COUNT(z) z->z_attr_table[ZPL_DACL_COUNT] |
#define | SA_ZPL_FLAGS(z) z->z_attr_table[ZPL_FLAGS] |
#define | SA_ZPL_SIZE(z) z->z_attr_table[ZPL_SIZE] |
#define | SA_ZPL_ZNODE_ACL(z) z->z_attr_table[ZPL_ZNODE_ACL] |
#define | SA_ZPL_PAD(z) z->z_attr_table[ZPL_PAD] |
#define | IS_EPHEMERAL(x) (x > MAXUID) |
Is ID ephemeral? | |
#define | USE_FUIDS(version, os) |
Should we use FUIDs? | |
#define | USE_SA(version, os) |
#define | MASTER_NODE_OBJ 1 |
#define | ZFS_MAX_BLOCKSIZE (SPA_MAXBLOCKSIZE) |
#define | ZFS_MAXNAMELEN (MAXNAMELEN - 1) |
Path component length. | |
#define | IFTODT(mode) (((mode) & S_IFMT) >> 12) |
Convert mode bits (zp_mode) to BSD-style DT_* values for storing in the directory entries. | |
#define | ZTOV(ZP) ((ZP)->z_vnode) |
#define | VTOZ(VP) ((znode_t *)(VP)->v_data) |
#define | ZFS_ENTER(zfsvfs) |
Called on entry to each ZFS vnode and vfs operation. | |
#define | ZFS_ENTER_NOERROR(zfsvfs) rrw_enter(&(zfsvfs)->z_teardown_lock, RW_READER, FTAG) |
Called when we can't return EIO. | |
#define | ZFS_EXIT(zfsvfs) rrw_exit(&(zfsvfs)->z_teardown_lock, FTAG) |
Must be called before exitting the vop. | |
#define | ZFS_VERIFY_ZP(zp) |
Verifies the znode is valid. | |
#define | ZFS_TIME_ENCODE(tp, stmp) |
Encode ZFS stored time value from a struct timespec. | |
#define | ZFS_TIME_DECODE(tp, stmp) |
Decode ZFS stored time value to a struct timespec. | |
#define | ZFS_ACCESSTIME_STAMP(zfsvfs, zp) |
#define | ZFS_NO_OBJECT 0 |
no object id | |
Additional file level attributes | |
Stored in the upper half of zp_flags | |
#define | ZFS_READONLY 0x0000000100000000 |
#define | ZFS_HIDDEN 0x0000000200000000 |
#define | ZFS_SYSTEM 0x0000000400000000 |
#define | ZFS_ARCHIVE 0x0000000800000000 |
#define | ZFS_IMMUTABLE 0x0000001000000000 |
#define | ZFS_NOUNLINK 0x0000002000000000 |
#define | ZFS_APPENDONLY 0x0000004000000000 |
#define | ZFS_NODUMP 0x0000008000000000 |
#define | ZFS_OPAQUE 0x0000010000000000 |
#define | ZFS_AV_QUARANTINED 0x0000020000000000 |
#define | ZFS_AV_MODIFIED 0x0000040000000000 |
#define | ZFS_REPARSE 0x0000080000000000 |
#define | ZFS_OFFLINE 0x0000100000000000 |
#define | ZFS_SPARSE 0x0000200000000000 |
Special zfs pflags | |
#define | ZFS_XATTR 0x1 |
is an extended attribute | |
#define | ZFS_INHERIT_ACE 0x2 |
ace has inheritable ACEs | |
#define | ZFS_ACL_TRIVIAL 0x4 |
files ACL is trivial | |
#define | ZFS_ACL_OBJ_ACE 0x8 |
ACL has CMPLX Object ACE. | |
#define | ZFS_ACL_PROTECTED 0x10 |
ACL protected. | |
#define | ZFS_ACL_DEFAULTED 0x20 |
ACL should be defaulted. | |
#define | ZFS_ACL_AUTO_INHERIT 0x40 |
ACL should be inherited. | |
#define | ZFS_BONUS_SCANSTAMP 0x80 |
Scanstamp in bonus area. | |
#define | ZFS_NO_EXECS_DENIED 0x100 |
exec was given to everyone | |
Special attributes for master node. | |
"userquota@" and "groupquota@" are also valid (from zfs_userquota_prop_prefixes[]). | |
#define | ZFS_FSID "FSID" |
#define | ZFS_UNLINKED_SET "DELETE_QUEUE" |
#define | ZFS_ROOT_OBJ "ROOT" |
#define | ZPL_VERSION_STR "VERSION" |
#define | ZFS_FUID_TABLES "FUID" |
#define | ZFS_SHARES_DIR "SHARES" |
#define | ZFS_SA_ATTRS "SA_ATTRS" |
Directory Entries | |
The directory entry has the type (currently unused on Solaris) in the top 4 bits, and the object number in the low 48 bits. The "middle" 12 bits are unused. /{ | |
#define | ZFS_DIRENT_TYPE(de) BF64_GET(de, 60, 4) |
#define | ZFS_DIRENT_OBJ(de) BF64_GET(de, 0, 48) |
Macros for dealing with dmu_buf_hold | |
#define | ZFS_OBJ_HASH(obj_num) ((obj_num) & (ZFS_OBJ_MTX_SZ - 1)) |
#define | ZFS_OBJ_MUTEX(zfsvfs, obj_num) (&(zfsvfs)->z_hold_mtx[ZFS_OBJ_HASH(obj_num)]) |
#define | ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num) mutex_enter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) |
#define | ZFS_OBJ_HOLD_TRYENTER(zfsvfs, obj_num) mutex_tryenter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) |
#define | ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num) mutex_exit(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) |
Timestamp defines | |
#define | ACCESSED (AT_ATIME) |
#define | STATE_CHANGED (AT_CTIME) |
#define | CONTENT_MODIFIED (AT_MTIME | AT_CTIME) |
Typedefs | |
typedef struct zfs_dirlock | zfs_dirlock_t |
Directory Entry Locks. | |
typedef struct znode | znode_t |
Functions | |
int | zfs_init_fs (zfsvfs_t *, znode_t **) |
void | zfs_set_dataprop (objset_t *) |
void | zfs_create_fs (objset_t *os, cred_t *cr, nvlist_t *, dmu_tx_t *tx) |
void | zfs_tstamp_update_setup (znode_t *, uint_t, uint64_t[2], uint64_t[2], boolean_t) |
void | zfs_grow_blocksize (znode_t *, uint64_t, dmu_tx_t *) |
Grow the block size for a file. | |
int | zfs_freesp (znode_t *, uint64_t, uint64_t, int, boolean_t) |
Free space in a file. | |
void | zfs_znode_init (void) |
void | zfs_znode_fini (void) |
int | zfs_zget (zfsvfs_t *, uint64_t, znode_t **) |
int | zfs_rezget (znode_t *) |
void | zfs_zinactive (znode_t *) |
void | zfs_znode_delete (znode_t *, dmu_tx_t *) |
void | zfs_znode_free (znode_t *) |
void | zfs_remove_op_tables () |
int | zfs_create_op_tables () |
dev_t | zfs_cmpldev (uint64_t) |
Special cmpldev for ZFS private use. | |
int | zfs_get_zplprop (objset_t *os, zfs_prop_t prop, uint64_t *value) |
Read a property stored within the master node. | |
int | zfs_get_stats (objset_t *os, nvlist_t *nv) |
void | zfs_znode_dmu_fini (znode_t *) |
void | zfs_log_create (zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, znode_t *dzp, znode_t *zp, char *name, vsecattr_t *, zfs_fuid_info_t *, vattr_t *vap) |
Handles TX_CREATE, TX_CREATE_ATTR, TX_MKDIR, TX_MKDIR_ATTR and TX_MKXATTR transactions. | |
int | zfs_log_create_txtype (zil_create_t, vsecattr_t *vsecp, vattr_t *vap) |
void | zfs_log_remove (zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, znode_t *dzp, char *name, uint64_t foid) |
handles both TX_REMOVE and TX_RMDIR transactions. | |
void | zfs_log_link (zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, znode_t *dzp, znode_t *zp, char *name) |
handles TX_LINK transactions. | |
void | zfs_log_symlink (zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, znode_t *dzp, znode_t *zp, char *name, char *link) |
handles TX_SYMLINK transactions. | |
void | zfs_log_rename (zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, znode_t *sdzp, char *sname, znode_t *tdzp, char *dname, znode_t *szp) |
handles TX_RENAME transactions. | |
void | zfs_log_write (zilog_t *zilog, dmu_tx_t *tx, int txtype, znode_t *zp, offset_t off, ssize_t len, int ioflag) |
void | zfs_log_truncate (zilog_t *zilog, dmu_tx_t *tx, int txtype, znode_t *zp, uint64_t off, uint64_t len) |
handles TX_TRUNCATE transactions. | |
void | zfs_log_setattr (zilog_t *zilog, dmu_tx_t *tx, int txtype, znode_t *zp, vattr_t *vap, uint_t mask_applied, zfs_fuid_info_t *fuidp) |
handles TX_SETATTR transactions. | |
void | zfs_log_acl (zilog_t *zilog, dmu_tx_t *tx, znode_t *zp, vsecattr_t *vsecp, zfs_fuid_info_t *fuidp) |
handles TX_ACL transactions. | |
void | zfs_xvattr_set (znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx) |
Update in-core attributes. | |
void | zfs_upgrade (zfsvfs_t *zfsvfs, dmu_tx_t *tx) |
int | zfs_create_share_dir (zfsvfs_t *zfsvfs, dmu_tx_t *tx) |
int | zfs_obj_to_path (objset_t *osp, uint64_t obj, char *buf, int len) |
Variables | |
zil_get_data_t | zfs_get_data |
zil_replay_func_t * | zfs_replay_vector [TX_MAX_TYPE] |
Callback vectors for replaying records. | |
int | zfsfstype |
Definition in file zfs_znode.h.
#define ACCESSED (AT_ATIME) |
Definition at line 330 of file zfs_znode.h.
#define CONTENT_MODIFIED (AT_MTIME | AT_CTIME) |
Definition at line 332 of file zfs_znode.h.
#define IFTODT | ( | mode | ) | (((mode) & S_IFMT) >> 12) |
Convert mode bits (zp_mode) to BSD-style DT_* values for storing in the directory entries.
Definition at line 158 of file zfs_znode.h.
#define IS_EPHEMERAL | ( | x | ) | (x > MAXUID) |
Is ID ephemeral?
Definition at line 114 of file zfs_znode.h.
#define MASTER_NODE_OBJ 1 |
Definition at line 124 of file zfs_znode.h.
#define SA_ZPL_ATIME | ( | z | ) | z->z_attr_table[ZPL_ATIME] |
Definition at line 90 of file zfs_znode.h.
#define SA_ZPL_CRTIME | ( | z | ) | z->z_attr_table[ZPL_CRTIME] |
Definition at line 93 of file zfs_znode.h.
#define SA_ZPL_CTIME | ( | z | ) | z->z_attr_table[ZPL_CTIME] |
Definition at line 92 of file zfs_znode.h.
#define SA_ZPL_DACL_ACES | ( | z | ) | z->z_attr_table[ZPL_DACL_ACES] |
Definition at line 95 of file zfs_znode.h.
#define SA_ZPL_DACL_COUNT | ( | z | ) | z->z_attr_table[ZPL_DACL_COUNT] |
Definition at line 105 of file zfs_znode.h.
#define SA_ZPL_FLAGS | ( | z | ) | z->z_attr_table[ZPL_FLAGS] |
Definition at line 106 of file zfs_znode.h.
#define SA_ZPL_GEN | ( | z | ) | z->z_attr_table[ZPL_GEN] |
Definition at line 94 of file zfs_znode.h.
#define SA_ZPL_GID | ( | z | ) | z->z_attr_table[ZPL_GID] |
Definition at line 101 of file zfs_znode.h.
#define SA_ZPL_LINKS | ( | z | ) | z->z_attr_table[ZPL_LINKS] |
Definition at line 103 of file zfs_znode.h.
#define SA_ZPL_MODE | ( | z | ) | z->z_attr_table[ZPL_MODE] |
Definition at line 104 of file zfs_znode.h.
#define SA_ZPL_MTIME | ( | z | ) | z->z_attr_table[ZPL_MTIME] |
Definition at line 91 of file zfs_znode.h.
#define SA_ZPL_PAD | ( | z | ) | z->z_attr_table[ZPL_PAD] |
Definition at line 109 of file zfs_znode.h.
#define SA_ZPL_PARENT | ( | z | ) | z->z_attr_table[ZPL_PARENT] |
Definition at line 102 of file zfs_znode.h.
#define SA_ZPL_RDEV | ( | z | ) | z->z_attr_table[ZPL_RDEV] |
Definition at line 98 of file zfs_znode.h.
#define SA_ZPL_SCANSTAMP | ( | z | ) | z->z_attr_table[ZPL_SCANSTAMP] |
Definition at line 99 of file zfs_znode.h.
#define SA_ZPL_SIZE | ( | z | ) | z->z_attr_table[ZPL_SIZE] |
Definition at line 107 of file zfs_znode.h.
#define SA_ZPL_SYMLINK | ( | z | ) | z->z_attr_table[ZPL_SYMLINK] |
Definition at line 97 of file zfs_znode.h.
#define SA_ZPL_UID | ( | z | ) | z->z_attr_table[ZPL_UID] |
Definition at line 100 of file zfs_znode.h.
#define SA_ZPL_XATTR | ( | z | ) | z->z_attr_table[ZPL_XATTR] |
Definition at line 96 of file zfs_znode.h.
#define SA_ZPL_ZNODE_ACL | ( | z | ) | z->z_attr_table[ZPL_ZNODE_ACL] |
Definition at line 108 of file zfs_znode.h.
#define STATE_CHANGED (AT_CTIME) |
Definition at line 331 of file zfs_znode.h.
#define USE_FUIDS | ( | version, | |
os | |||
) |
(version >= ZPL_VERSION_FUID && \ spa_version(dmu_objset_spa(os)) >= SPA_VERSION_FUID)
Should we use FUIDs?
Definition at line 119 of file zfs_znode.h.
#define USE_SA | ( | version, | |
os | |||
) |
(version >= ZPL_VERSION_SA && \ spa_version(dmu_objset_spa(os)) >= SPA_VERSION_SA)
Definition at line 121 of file zfs_znode.h.
#define VTOZ | ( | VP | ) | ((znode_t *)(VP)->v_data) |
Definition at line 266 of file zfs_znode.h.
#define ZFS_ACCESSTIME_STAMP | ( | zfsvfs, | |
zp | |||
) |
if ((zfsvfs)->z_atime && !((zfsvfs)->z_vfs->vfs_flag & VFS_RDONLY)) \ zfs_tstamp_update_setup(zp, ACCESSED, NULL, NULL, B_FALSE);
Definition at line 335 of file zfs_znode.h.
#define ZFS_ACL_AUTO_INHERIT 0x40 |
ACL should be inherited.
Definition at line 85 of file zfs_znode.h.
#define ZFS_ACL_DEFAULTED 0x20 |
ACL should be defaulted.
Definition at line 84 of file zfs_znode.h.
#define ZFS_ACL_OBJ_ACE 0x8 |
ACL has CMPLX Object ACE.
Definition at line 82 of file zfs_znode.h.
#define ZFS_ACL_PROTECTED 0x10 |
ACL protected.
Definition at line 83 of file zfs_znode.h.
#define ZFS_ACL_TRIVIAL 0x4 |
files ACL is trivial
Definition at line 81 of file zfs_znode.h.
#define ZFS_APPENDONLY 0x0000004000000000 |
Definition at line 55 of file zfs_znode.h.
#define ZFS_ARCHIVE 0x0000000800000000 |
Definition at line 52 of file zfs_znode.h.
#define ZFS_ATTR_SET | ( | zp, | |
attr, | |||
value, | |||
pflags, | |||
tx | |||
) |
{ \ if (value) \ pflags |= attr; \ else \ pflags &= ~attr; \ VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_FLAGS(zp->z_zfsvfs), \ &pflags, sizeof (pflags), tx)); \ }
Definition at line 65 of file zfs_znode.h.
#define ZFS_AV_MODIFIED 0x0000040000000000 |
Definition at line 59 of file zfs_znode.h.
#define ZFS_AV_QUARANTINED 0x0000020000000000 |
Definition at line 58 of file zfs_znode.h.
#define ZFS_BONUS_SCANSTAMP 0x80 |
Scanstamp in bonus area.
Definition at line 86 of file zfs_znode.h.
#define ZFS_DIRENT_OBJ | ( | de | ) | BF64_GET(de, 0, 48) |
Definition at line 170 of file zfs_znode.h.
#define ZFS_DIRENT_TYPE | ( | de | ) | BF64_GET(de, 60, 4) |
Definition at line 169 of file zfs_znode.h.
#define ZFS_ENTER | ( | zfsvfs | ) |
Called when we can't return EIO.
Definition at line 280 of file zfs_znode.h.
Must be called before exitting the vop.
Definition at line 284 of file zfs_znode.h.
#define ZFS_FSID "FSID" |
Definition at line 132 of file zfs_znode.h.
#define ZFS_FUID_TABLES "FUID" |
Definition at line 136 of file zfs_znode.h.
#define ZFS_HIDDEN 0x0000000200000000 |
Definition at line 50 of file zfs_znode.h.
#define ZFS_IMMUTABLE 0x0000001000000000 |
Definition at line 53 of file zfs_znode.h.
#define ZFS_INHERIT_ACE 0x2 |
ace has inheritable ACEs
Definition at line 80 of file zfs_znode.h.
#define ZFS_MAX_BLOCKSIZE (SPA_MAXBLOCKSIZE) |
Definition at line 140 of file zfs_znode.h.
#define ZFS_MAXNAMELEN (MAXNAMELEN - 1) |
Path component length.
The generic fs code uses MAXNAMELEN to represent what the largest component length is. Unfortunately, this length includes the terminating NULL. ZFS needs to tell the users via pathconf() and statvfs() what the true maximum length of a component is, excluding the NULL.
Definition at line 151 of file zfs_znode.h.
#define ZFS_NO_EXECS_DENIED 0x100 |
exec was given to everyone
Definition at line 87 of file zfs_znode.h.
#define ZFS_NO_OBJECT 0 |
no object id
Definition at line 368 of file zfs_znode.h.
#define ZFS_NODUMP 0x0000008000000000 |
Definition at line 56 of file zfs_znode.h.
#define ZFS_NOUNLINK 0x0000002000000000 |
Definition at line 54 of file zfs_znode.h.
#define ZFS_OBJ_HASH | ( | obj_num | ) | ((obj_num) & (ZFS_OBJ_MTX_SZ - 1)) |
Definition at line 297 of file zfs_znode.h.
Definition at line 300 of file zfs_znode.h.
Definition at line 304 of file zfs_znode.h.
#define ZFS_OBJ_HOLD_TRYENTER | ( | zfsvfs, | |
obj_num | |||
) | mutex_tryenter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) |
Definition at line 302 of file zfs_znode.h.
Definition at line 298 of file zfs_znode.h.
#define ZFS_OFFLINE 0x0000100000000000 |
Definition at line 61 of file zfs_znode.h.
#define ZFS_OPAQUE 0x0000010000000000 |
Definition at line 57 of file zfs_znode.h.
#define ZFS_READONLY 0x0000000100000000 |
Definition at line 49 of file zfs_znode.h.
#define ZFS_REPARSE 0x0000080000000000 |
Definition at line 60 of file zfs_znode.h.
#define ZFS_ROOT_OBJ "ROOT" |
Definition at line 134 of file zfs_znode.h.
#define ZFS_SA_ATTRS "SA_ATTRS" |
Definition at line 138 of file zfs_znode.h.
#define ZFS_SHARES_DIR "SHARES" |
Definition at line 137 of file zfs_znode.h.
#define ZFS_SPARSE 0x0000200000000000 |
Definition at line 62 of file zfs_znode.h.
#define ZFS_SYSTEM 0x0000000400000000 |
Definition at line 51 of file zfs_znode.h.
#define ZFS_TIME_DECODE | ( | tp, | |
stmp | |||
) |
{ \
(tp)->tv_sec = (time_t)(stmp)[0]; \
(tp)->tv_nsec = (long)(stmp)[1]; \
}
Decode ZFS stored time value to a struct timespec.
Definition at line 320 of file zfs_znode.h.
#define ZFS_TIME_ENCODE | ( | tp, | |
stmp | |||
) |
{ \ (stmp)[0] = (uint64_t)(tp)->tv_sec; \ (stmp)[1] = (uint64_t)(tp)->tv_nsec; \ }
Encode ZFS stored time value from a struct timespec.
Definition at line 311 of file zfs_znode.h.
#define ZFS_UNLINKED_SET "DELETE_QUEUE" |
Definition at line 133 of file zfs_znode.h.
#define ZFS_VERIFY_ZP | ( | zp | ) |
if ((zp)->z_sa_hdl == NULL) { \ ZFS_EXIT((zp)->z_zfsvfs); \ return (EIO); \ } \
Verifies the znode is valid.
Definition at line 287 of file zfs_znode.h.
#define ZFS_XATTR 0x1 |
is an extended attribute
Definition at line 79 of file zfs_znode.h.
#define ZPL_VERSION_STR "VERSION" |
Definition at line 135 of file zfs_znode.h.
#define ZTOV | ( | ZP | ) | ((ZP)->z_vnode) |
Definition at line 265 of file zfs_znode.h.
typedef struct zfs_dirlock zfs_dirlock_t |
Directory Entry Locks.
Directory entry locks control access to directory entries. They are used to protect creates, deletes, and renames. Each directory znode has a mutex and a list of locked names.
dev_t zfs_cmpldev | ( | uint64_t | dev | ) |
Special cmpldev for ZFS private use.
Can't use standard cmpldev since it takes a long dev_t and compresses it to dev32_t in LP64. We need to do a compaction of a long dev_t to a dev32_t in ILP32.
Definition at line 586 of file zfs_znode.c.
Definition at line 1841 of file zfs_znode.c.
int zfs_create_op_tables | ( | ) |
Definition at line 499 of file zfs_znode.c.
int zfs_freesp | ( | znode_t * | zp, |
uint64_t | off, | ||
uint64_t | len, | ||
int | flag, | ||
boolean_t | log | ||
) |
Free space in a file.
[in] | zp | znode of file to free data in. |
[in] | off | start of range |
[in] | len | end of range (0 => EOF) |
[in] | flag | current file open mode flags. |
[in] | log | TRUE if this action should be logged |
Definition at line 1768 of file zfs_znode.c.
int zfs_get_stats | ( | objset_t * | os, |
nvlist_t * | nv | ||
) |
int zfs_get_zplprop | ( | objset_t * | os, |
zfs_prop_t | prop, | ||
uint64_t * | value | ||
) |
Read a property stored within the master node.
Definition at line 2421 of file zfs_vfsops.c.
Grow the block size for a file.
[in] | zp | znode of file to free data in. |
[in] | size | requested block size |
[in] | tx | open transaction. |
Definition at line 1509 of file zfs_znode.c.
void zfs_log_acl | ( | zilog_t * | zilog, |
dmu_tx_t * | tx, | ||
znode_t * | zp, | ||
vsecattr_t * | vsecp, | ||
zfs_fuid_info_t * | fuidp | ||
) |
void zfs_log_create | ( | zilog_t * | zilog, |
dmu_tx_t * | tx, | ||
uint64_t | txtype, | ||
znode_t * | dzp, | ||
znode_t * | zp, | ||
char * | name, | ||
vsecattr_t * | vsecp, | ||
zfs_fuid_info_t * | fuidp, | ||
vattr_t * | vap | ||
) |
Handles TX_CREATE, TX_CREATE_ATTR, TX_MKDIR, TX_MKDIR_ATTR and TX_MKXATTR transactions.
TX_CREATE and TX_MKDIR are standard creates, but they may have FUID domain information appended prior to the name. In this case the uid/gid in the log record will be a log centric FUID.
TX_CREATE_ACL_ATTR and TX_MKDIR_ACL_ATTR handle special creates that may contain attributes, ACL and optional fuid information.
TX_CREATE_ACL and TX_MKDIR_ACL handle special creates that specify and ACL and normal users/groups in the ACEs.
There may be an optional xvattr attribute information similar to zfs_log_setattr.
Also, after the file name "domain" strings may be appended.
int zfs_log_create_txtype | ( | zil_create_t | , |
vsecattr_t * | vsecp, | ||
vattr_t * | vap | ||
) |
void zfs_log_setattr | ( | zilog_t * | zilog, |
dmu_tx_t * | tx, | ||
int | txtype, | ||
znode_t * | zp, | ||
vattr_t * | vap, | ||
uint_t | mask_applied, | ||
zfs_fuid_info_t * | fuidp | ||
) |
int zfs_obj_to_path | ( | objset_t * | osp, |
uint64_t | obj, | ||
char * | buf, | ||
int | len | ||
) |
Definition at line 2196 of file zfs_znode.c.
void zfs_remove_op_tables | ( | ) |
int zfs_rezget | ( | znode_t * | ) |
Definition at line 1276 of file zfs_znode.c.
void zfs_set_dataprop | ( | objset_t * | ) |
void zfs_tstamp_update_setup | ( | znode_t * | , |
uint_t | , | ||
uint64_t | [2], | ||
uint64_t | [2], | ||
boolean_t | |||
) |
Definition at line 1466 of file zfs_znode.c.
Update in-core attributes.
It is assumed the caller will be doing an sa_bulk_update to push the changes out
Definition at line 1051 of file zfs_znode.c.
Definition at line 1142 of file zfs_znode.c.
void zfs_zinactive | ( | znode_t * | ) |
Definition at line 1398 of file zfs_znode.c.
Definition at line 1379 of file zfs_znode.c.
void zfs_znode_dmu_fini | ( | znode_t * | ) |
Definition at line 623 of file zfs_znode.c.
void zfs_znode_fini | ( | void | ) |
Definition at line 386 of file zfs_znode.c.
void zfs_znode_free | ( | znode_t * | ) |
Definition at line 1444 of file zfs_znode.c.
void zfs_znode_init | ( | void | ) |
Definition at line 372 of file zfs_znode.c.
zil_get_data_t zfs_get_data |
zil_replay_func_t* zfs_replay_vector[TX_MAX_TYPE] |
Callback vectors for replaying records.
Definition at line 1014 of file zfs_replay.c.
int zfsfstype |