Mercurial > illumos > illumos-gate
changeset 14046:6a5a2f4a47db
3742 zfs comments need cleaner, more consistent style
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Approved by: Christopher Siden <christopher.siden@delphix.com>
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/arc.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/arc.c Tue Jun 11 09:13:33 2013 -0800 @@ -58,11 +58,11 @@ * tight. * * 3. The Megiddo and Modha model assumes a fixed page size. All - * elements of the cache are therefor exactly the same size. So + * elements of the cache are therefore exactly the same size. So * when adjusting the cache size following a cache miss, its simply * a matter of choosing a single page to evict. In our model, we * have variable sized cache blocks (rangeing from 512 bytes to - * 128K bytes). We therefor choose a set of blocks to evict to make + * 128K bytes). We therefore choose a set of blocks to evict to make * space for a cache miss that approximates as closely as possible * the space used by the new block. * @@ -77,7 +77,7 @@ * ways: 1) via a hash table lookup using the DVA as a key, * or 2) via one of the ARC lists. The arc_read() interface * uses method 1, while the internal arc algorithms for - * adjusting the cache use method 2. We therefor provide two + * adjusting the cache use method 2. We therefore provide two * types of locks: 1) the hash table lock array, and 2) the * arc list locks. * @@ -385,7 +385,7 @@ #define ARCSTAT(stat) (arc_stats.stat.value.ui64) #define ARCSTAT_INCR(stat, val) \ - atomic_add_64(&arc_stats.stat.value.ui64, (val)); + atomic_add_64(&arc_stats.stat.value.ui64, (val)) #define ARCSTAT_BUMP(stat) ARCSTAT_INCR(stat, 1) #define ARCSTAT_BUMPDOWN(stat) ARCSTAT_INCR(stat, -1) @@ -613,9 +613,7 @@ #define l2arc_writes_sent ARCSTAT(arcstat_l2_writes_sent) #define l2arc_writes_done ARCSTAT(arcstat_l2_writes_done) -/* - * L2ARC Performance Tunables - */ +/* L2ARC Performance Tunables */ uint64_t l2arc_write_max = L2ARC_WRITE_SIZE; /* default max write size */ uint64_t l2arc_write_boost = L2ARC_WRITE_SIZE; /* extra write during warmup */ uint64_t l2arc_headroom = L2ARC_HEADROOM; /* number of dev writes */ @@ -3628,7 +3626,7 @@ /* * Writes will, almost always, require additional memory allocations - * in order to compress/encrypt/etc the data. We therefor need to + * in order to compress/encrypt/etc the data. We therefore need to * make sure that there is sufficient available memory for this. */ if (error = arc_memory_throttle(reserve, anon_size, txg))
--- a/usr/src/uts/common/fs/zfs/bptree.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/bptree.c Tue Jun 11 09:13:33 2013 -0800 @@ -43,7 +43,7 @@ * dsl_scan_sync. This allows the delete operation to finish without traversing * all the dataset's blocks. * - * Note that while bt_begin and bt_end are only ever incremented in this code + * Note that while bt_begin and bt_end are only ever incremented in this code, * they are effectively reset to 0 every time the entire bptree is freed because * the bptree's object is destroyed and re-created. */
--- a/usr/src/uts/common/fs/zfs/dnode.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/dnode.c Tue Jun 11 09:13:33 2013 -0800 @@ -1803,14 +1803,16 @@ } /* - * This function scans a block at the indicated "level" looking for - * a hole or data (depending on 'flags'). If level > 0, then we are - * scanning an indirect block looking at its pointers. If level == 0, - * then we are looking at a block of dnodes. If we don't find what we - * are looking for in the block, we return ESRCH. Otherwise, return - * with *offset pointing to the beginning (if searching forwards) or - * end (if searching backwards) of the range covered by the block - * pointer we matched on (or dnode). + * Scans a block at the indicated "level" looking for a hole or data, + * depending on 'flags'. + * + * If level > 0, then we are scanning an indirect block looking at its + * pointers. If level == 0, then we are looking at a block of dnodes. + * + * If we don't find what we are looking for in the block, we return ESRCH. + * Otherwise, return with *offset pointing to the beginning (if searching + * forwards) or end (if searching backwards) of the range covered by the + * block pointer we matched on (or dnode). * * The basic search algorithm used below by dnode_next_offset() is to * use this function to search up the block tree (widen the search) until
--- a/usr/src/uts/common/fs/zfs/dnode_sync.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/dnode_sync.c Tue Jun 11 09:13:33 2013 -0800 @@ -302,7 +302,7 @@ } /* - * free_range: Traverse the indicated range of the provided file + * Traverse the indicated range of the provided file * and "free" all the blocks contained there. */ static void @@ -370,7 +370,7 @@ } /* - * Try to kick all the dnodes dbufs out of the cache... + * Try to kick all the dnode's dbufs out of the cache... */ void dnode_evict_dbufs(dnode_t *dn)
--- a/usr/src/uts/common/fs/zfs/dsl_prop.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/dsl_prop.c Tue Jun 11 09:13:33 2013 -0800 @@ -380,7 +380,7 @@ /* * Unregister this callback. Return 0 on success, ENOENT if ddname is - * invalid, ENOMSG if no matching callback registered. + * invalid, or ENOMSG if no matching callback registered. */ int dsl_prop_unregister(dsl_dataset_t *ds, const char *propname,
--- a/usr/src/uts/common/fs/zfs/sa.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sa.c Tue Jun 11 09:13:33 2013 -0800 @@ -111,6 +111,7 @@ * location. * * Byteswap implications: + * * Since the SA attributes are not entirely self describing we can't do * the normal byteswap processing. The special ZAP layout attribute and * attribute registration attributes define the byteswap function and the @@ -189,7 +190,6 @@ }; /* - * ZPL legacy layout * This is only used for objects of type DMU_OT_ZNODE */ sa_attr_type_t sa_legacy_zpl_layout[] = { @@ -199,7 +199,6 @@ /* * Special dummy layout used for buffers with no attributes. */ - sa_attr_type_t sa_dummy_zpl_layout[] = { 0 }; static int sa_legacy_attr_count = 16;
--- a/usr/src/uts/common/fs/zfs/spa.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/spa.c Tue Jun 11 09:13:33 2013 -0800 @@ -4516,6 +4516,7 @@ /* * Detach a device from a mirror or replacing vdev. + * * If 'replace_done' is specified, only detach if the parent * is a replacing vdev. */ @@ -5170,11 +5171,9 @@ * the spa_vdev_config_[enter/exit] functions which allow us to * grab and release the spa_config_lock while still holding the namespace * lock. During each step the configuration is synced out. - */ - -/* - * Remove a device from the pool. Currently, this supports removing only hot - * spares, slogs, and level 2 ARC devices. + * + * Currently, this supports removing only hot spares, slogs, and level 2 ARC + * devices. */ int spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare) @@ -5284,7 +5283,7 @@ /* * Find any device that's done replacing, or a vdev marked 'unspare' that's - * current spared, so we can detach it. + * currently spared, so we can detach it. */ static vdev_t * spa_vdev_resilver_done_hunt(vdev_t *vd)
--- a/usr/src/uts/common/fs/zfs/spa_config.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/spa_config.c Tue Jun 11 09:13:33 2013 -0800 @@ -317,6 +317,7 @@ /* * Generate the pool's configuration based on the current in-core state. + * * We infer whether to generate a complete config or just one top-level config * based on whether vd is the root vdev. */
--- a/usr/src/uts/common/fs/zfs/spa_misc.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/spa_misc.c Tue Jun 11 09:13:33 2013 -0800 @@ -1334,7 +1334,7 @@ /* * This is a stripped-down version of strtoull, suitable only for converting - * lowercase hexidecimal numbers that don't overflow. + * lowercase hexadecimal numbers that don't overflow. */ uint64_t strtonum(const char *str, char **nptr)
--- a/usr/src/uts/common/fs/zfs/sys/ddt.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/ddt.h Tue Jun 11 09:13:33 2013 -0800 @@ -63,16 +63,15 @@ */ typedef struct ddt_key { zio_cksum_t ddk_cksum; /* 256-bit block checksum */ - uint64_t ddk_prop; /* LSIZE, PSIZE, compression */ + /* + * Encoded with logical & physical size, and compression, as follows: + * +-------+-------+-------+-------+-------+-------+-------+-------+ + * | 0 | 0 | 0 | comp | PSIZE | LSIZE | + * +-------+-------+-------+-------+-------+-------+-------+-------+ + */ + uint64_t ddk_prop; } ddt_key_t; -/* - * ddk_prop layout: - * - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * | 0 | 0 | 0 | comp | PSIZE | LSIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - */ #define DDK_GET_LSIZE(ddk) \ BF64_GET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1) #define DDK_SET_LSIZE(ddk, x) \
--- a/usr/src/uts/common/fs/zfs/sys/dnode.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/dnode.h Tue Jun 11 09:13:33 2013 -0800 @@ -145,9 +145,8 @@ typedef struct dnode { /* - * dn_struct_rwlock protects the structure of the dnode, - * including the number of levels of indirection (dn_nlevels), - * dn_maxblkid, and dn_next_* + * Protects the structure of the dnode, including the number of levels + * of indirection (dn_nlevels), dn_maxblkid, and dn_next_* */ krwlock_t dn_struct_rwlock;
--- a/usr/src/uts/common/fs/zfs/sys/dsl_pool.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/dsl_pool.h Tue Jun 11 09:13:33 2013 -0800 @@ -110,6 +110,7 @@ /* * Protects administrative changes (properties, namespace) + * * It is only held for write in syncing context. Therefore * syncing context does not need to ever have it for read, since * nobody else could possibly have it for write.
--- a/usr/src/uts/common/fs/zfs/sys/sa_impl.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/sa_impl.h Tue Jun 11 09:13:33 2013 -0800 @@ -150,6 +150,7 @@ /* * header for all bonus and spill buffers. + * * The header has a fixed portion with a variable number * of "lengths" depending on the number of variable sized * attribues which are determined by the "layout number" @@ -158,29 +159,27 @@ #define SA_MAGIC 0x2F505A /* ZFS SA */ typedef struct sa_hdr_phys { uint32_t sa_magic; - uint16_t sa_layout_info; /* Encoded with hdrsize and layout number */ + /* + * Encoded with hdrsize and layout number as follows: + * 16 10 0 + * +--------+-------+ + * | hdrsz |layout | + * +--------+-------+ + * + * Bits 0-10 are the layout number + * Bits 11-16 are the size of the header. + * The hdrsize is the number * 8 + * + * For example. + * hdrsz of 1 ==> 8 byte header + * 2 ==> 16 byte header + * + */ + uint16_t sa_layout_info; uint16_t sa_lengths[1]; /* optional sizes for variable length attrs */ /* ... Data follows the lengths. */ } sa_hdr_phys_t; -/* - * sa_hdr_phys -> sa_layout_info - * - * 16 10 0 - * +--------+-------+ - * | hdrsz |layout | - * +--------+-------+ - * - * Bits 0-10 are the layout number - * Bits 11-16 are the size of the header. - * The hdrsize is the number * 8 - * - * For example. - * hdrsz of 1 ==> 8 byte header - * 2 ==> 16 byte header - * - */ - #define SA_HDR_LAYOUT_NUM(hdr) BF32_GET(hdr->sa_layout_info, 0, 10) #define SA_HDR_SIZE(hdr) BF32_GET_SB(hdr->sa_layout_info, 10, 6, 3, 0) #define SA_HDR_LAYOUT_INFO_ENCODE(x, num, size) \
--- a/usr/src/uts/common/fs/zfs/sys/spa_impl.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/spa_impl.h Tue Jun 11 09:13:33 2013 -0800 @@ -239,7 +239,7 @@ kmutex_t spa_iokstat_lock; /* protects spa_iokstat_* */ struct kstat *spa_iokstat; /* kstat of io to this pool */ /* - * spa_refcnt & spa_config_lock must be the last elements + * spa_refcount & spa_config_lock must be the last elements * because refcount_t changes size based on compilation options. * In order for the MDB module to function correctly, the other * fields must remain in the same location.
--- a/usr/src/uts/common/fs/zfs/sys/space_map.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/space_map.h Tue Jun 11 09:13:33 2013 -0800 @@ -94,7 +94,6 @@ * 63 62 60 59 50 49 0 * * - * * non-debug entry * * 1 47 1 15
--- a/usr/src/uts/common/fs/zfs/sys/unique.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/unique.h Tue Jun 11 09:13:33 2013 -0800 @@ -26,8 +26,6 @@ #ifndef _SYS_UNIQUE_H #define _SYS_UNIQUE_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/zfs_context.h> #ifdef __cplusplus @@ -42,7 +40,7 @@ /* * Return a new unique value (which will not be uniquified against until - * it is unique_insert()-ed. + * it is unique_insert()-ed). */ uint64_t unique_create(void);
--- a/usr/src/uts/common/fs/zfs/sys/vdev_impl.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/vdev_impl.h Tue Jun 11 09:13:33 2013 -0800 @@ -245,12 +245,13 @@ #define VDD_METASLAB 0x01 #define VDD_DTL 0x02 +/* Offset of embedded boot loader region on each label */ +#define VDEV_BOOT_OFFSET (2 * sizeof (vdev_label_t)) /* - * Size and offset of embedded boot loader region on each label. + * Size of embedded boot loader region on each label. * The total size of the first two labels plus the boot area is 4MB. */ -#define VDEV_BOOT_OFFSET (2 * sizeof (vdev_label_t)) -#define VDEV_BOOT_SIZE (7ULL << 19) /* 3.5M */ +#define VDEV_BOOT_SIZE (7ULL << 19) /* 3.5M */ /* * Size of label regions at the start and end of each leaf device. @@ -317,8 +318,9 @@ extern void vdev_set_min_asize(vdev_t *vd); /* - * zdb uses this tunable, so it must be declared here to make lint happy. + * Global variables */ +/* zdb uses this tunable, so it must be declared here to make lint happy. */ extern int zfs_vdev_cache_size; /*
--- a/usr/src/uts/common/fs/zfs/sys/zap.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zap.h Tue Jun 11 09:13:33 2013 -0800 @@ -86,18 +86,22 @@ #endif /* - * The matchtype specifies which entry will be accessed. - * MT_EXACT: only find an exact match (non-normalized) - * MT_FIRST: find the "first" normalized (case and Unicode - * form) match; the designated "first" match will not change as long - * as the set of entries with this normalization doesn't change - * MT_BEST: if there is an exact match, find that, otherwise find the - * first normalized match + * Specifies matching criteria for ZAP lookups. */ typedef enum matchtype { + /* Only find an exact match (non-normalized) */ MT_EXACT, + /* + * If there is an exact match, find that, otherwise find the + * first normalized match. + */ MT_BEST, + /* + * Find the "first" normalized (case and Unicode form) match; + * the designated "first" match will not change as long as the + * set of entries with this normalization doesn't change. + */ MT_FIRST } matchtype_t; @@ -174,16 +178,21 @@ * call will fail and return EINVAL. * * If 'integer_size' is equal to or larger than the attribute's integer - * size, the call will succeed and return 0. * When converting to a - * larger integer size, the integers will be treated as unsigned (ie. no - * sign-extension will be performed). + * size, the call will succeed and return 0. + * + * When converting to a larger integer size, the integers will be treated as + * unsigned (ie. no sign-extension will be performed). * * 'num_integers' is the length (in integers) of 'buf'. * * If the attribute is longer than the buffer, as many integers as will * fit will be transferred to 'buf'. If the entire attribute was not * transferred, the call will return EOVERFLOW. - * + */ +int zap_lookup(objset_t *ds, uint64_t zapobj, const char *name, + uint64_t integer_size, uint64_t num_integers, void *buf); + +/* * If rn_len is nonzero, realname will be set to the name of the found * entry (which may be different from the requested name if matchtype is * not MT_EXACT). @@ -191,8 +200,6 @@ * If normalization_conflictp is not NULL, it will be set if there is * another name with the same case/unicode normalized form. */ -int zap_lookup(objset_t *ds, uint64_t zapobj, const char *name, - uint64_t integer_size, uint64_t num_integers, void *buf); int zap_lookup_norm(objset_t *ds, uint64_t zapobj, const char *name, uint64_t integer_size, uint64_t num_integers, void *buf, matchtype_t mt, char *realname, int rn_len,
--- a/usr/src/uts/common/fs/zfs/sys/zap_leaf.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zap_leaf.h Tue Jun 11 09:13:33 2013 -0800 @@ -101,6 +101,7 @@ */ typedef struct zap_leaf_phys { struct zap_leaf_header { + /* Public to ZAP */ uint64_t lh_block_type; /* ZBT_LEAF */ uint64_t lh_pad1; uint64_t lh_prefix; /* hash prefix of this leaf */ @@ -109,8 +110,7 @@ uint16_t lh_nentries; /* number of entries */ uint16_t lh_prefix_len; /* num bits used to id this */ -/* above is accessable to zap, below is zap_leaf private */ - + /* Private to zap_leaf */ uint16_t lh_freelist; /* chunk head of free list */ uint8_t lh_flags; /* ZLF_* flags */ uint8_t lh_pad2[11]; @@ -161,13 +161,13 @@ typedef struct zap_entry_handle { - /* below is set by zap_leaf.c and is public to zap.c */ + /* Set by zap_leaf and public to ZAP */ uint64_t zeh_num_integers; uint64_t zeh_hash; uint32_t zeh_cd; uint8_t zeh_integer_size; - /* below is private to zap_leaf.c */ + /* Private to zap_leaf */ uint16_t zeh_fakechunk; uint16_t *zeh_chunkp; zap_leaf_t *zeh_leaf; @@ -202,7 +202,7 @@ /* * Replace the value of an existing entry. * - * zap_entry_update may fail if it runs out of space (ENOSPC). + * May fail if it runs out of space (ENOSPC). */ extern int zap_entry_update(zap_entry_handle_t *zeh, uint8_t integer_size, uint64_t num_integers, const void *buf); @@ -221,10 +221,7 @@ uint8_t integer_size, uint64_t num_integers, const void *buf, zap_entry_handle_t *zeh); -/* - * Return true if there are additional entries with the same normalized - * form. - */ +/* Determine whether there is another entry with the same normalized form. */ extern boolean_t zap_entry_normalization_conflict(zap_entry_handle_t *zeh, struct zap_name *zn, const char *name, struct zap *zap);
--- a/usr/src/uts/common/fs/zfs/sys/zfs_acl.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zfs_acl.h Tue Jun 11 09:13:33 2013 -0800 @@ -46,7 +46,8 @@ #define ZFS_ACL_VERSION ZFS_ACL_VERSION_FUID /* - * ZFS ACLs are store in various forms. + * ZFS ACLs (Access Control Lists) are stored in various forms. + * * Files created with ACL version ZFS_ACL_VERSION_INITIAL * will all be created with fixed length ACEs of type * zfs_oldace_t. @@ -136,8 +137,8 @@ size_t (*ace_size)(void *acep); /* how big is this ace */ size_t (*ace_abstract_size)(void); /* sizeof abstract entry */ int (*ace_mask_off)(void); /* off of access mask in ace */ + /* ptr to data if any */ int (*ace_data)(void *acep, void **datap); - /* ptr to data if any */ } acl_ops_t; /*
--- a/usr/src/uts/common/fs/zfs/sys/zfs_rlock.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zfs_rlock.h Tue Jun 11 09:13:33 2013 -0800 @@ -26,8 +26,6 @@ #ifndef _SYS_FS_ZFS_RLOCK_H #define _SYS_FS_ZFS_RLOCK_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif @@ -57,16 +55,14 @@ } rl_t; /* - * Lock a range (offset, length) as either shared (READER) - * or exclusive (WRITER or APPEND). APPEND is a special type that - * is converted to WRITER that specified to lock from the start of the - * end of file. zfs_range_lock() returns the range lock structure. + * Lock a range (offset, length) as either shared (RL_READER) + * or exclusive (RL_WRITER or RL_APPEND). RL_APPEND is a special type that + * is converted to RL_WRITER that specified to lock from the start of the + * end of file. Returns the range lock structure. */ rl_t *zfs_range_lock(znode_t *zp, uint64_t off, uint64_t len, rl_type_t type); -/* - * Unlock range and destroy range lock structure. - */ +/* Unlock range and destroy range lock structure. */ void zfs_range_unlock(rl_t *rl); /* @@ -76,7 +72,8 @@ void zfs_range_reduce(rl_t *rl, uint64_t off, uint64_t len); /* - * AVL comparison function used to compare range locks + * AVL comparison function used to order range locks + * Locks are ordered on the start offset of the range. */ int zfs_range_compare(const void *arg1, const void *arg2);
--- a/usr/src/uts/common/fs/zfs/sys/zfs_znode.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zfs_znode.h Tue Jun 11 09:13:33 2013 -0800 @@ -138,8 +138,9 @@ #define ZFS_MAX_BLOCKSIZE (SPA_MAXBLOCKSIZE) -/* Path component length */ /* + * 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 @@ -234,11 +235,7 @@ #define ZTOV(ZP) ((ZP)->z_vnode) #define VTOZ(VP) ((znode_t *)(VP)->v_data) -/* - * ZFS_ENTER() is called on entry to each ZFS vnode and vfs operation. - * ZFS_EXIT() must be called before exitting the vop. - * ZFS_VERIFY_ZP() verifies the znode is valid. - */ +/* Called on entry to each ZFS vnode and vfs operation */ #define ZFS_ENTER(zfsvfs) \ { \ rrw_enter_read(&(zfsvfs)->z_teardown_lock, FTAG); \ @@ -248,8 +245,10 @@ } \ } +/* Must be called before exiting the vop */ #define ZFS_EXIT(zfsvfs) rrw_exit(&(zfsvfs)->z_teardown_lock, FTAG) +/* Verifies the znode is valid */ #define ZFS_VERIFY_ZP(zp) \ if ((zp)->z_sa_hdl == NULL) { \ ZFS_EXIT((zp)->z_zfsvfs); \ @@ -269,15 +268,14 @@ #define ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num) \ mutex_exit(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) -/* - * Macros to encode/decode ZFS stored time values from/to struct timespec - */ +/* Encode ZFS stored time values from a struct timespec */ #define ZFS_TIME_ENCODE(tp, stmp) \ { \ (stmp)[0] = (uint64_t)(tp)->tv_sec; \ (stmp)[1] = (uint64_t)(tp)->tv_nsec; \ } +/* Decode ZFS stored time values to a struct timespec */ #define ZFS_TIME_DECODE(tp, stmp) \ { \ (tp)->tv_sec = (time_t)(stmp)[0]; \
--- a/usr/src/uts/common/fs/zfs/sys/zil.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zil.h Tue Jun 11 09:13:33 2013 -0800 @@ -242,6 +242,12 @@ * information needed for replaying the create. If the * file doesn't have any actual ACEs then the lr_aclcnt * would be zero. + * + * After lr_acl_flags, there are a lr_acl_bytes number of variable sized ace's. + * If create is also setting xvattr's, then acl data follows xvattr. + * If ACE FUIDs are needed then they will follow the xvattr_t. Following + * the FUIDs will be the domain table information. The FUIDs for the owner + * and group will be in lr_create. Name follows ACL data. */ typedef struct { lr_create_t lr_create; /* common create portion */ @@ -250,13 +256,6 @@ uint64_t lr_fuidcnt; /* number of real fuids */ uint64_t lr_acl_bytes; /* number of bytes in ACL */ uint64_t lr_acl_flags; /* ACL flags */ - /* lr_acl_bytes number of variable sized ace's follows */ - /* if create is also setting xvattr's, then acl data follows xvattr */ - /* if ACE FUIDs are needed then they will follow the xvattr_t */ - /* Following the FUIDs will be the domain table information. */ - /* The FUIDs for the owner and group will be in the lr_create */ - /* portion of the record. */ - /* name follows ACL data */ } lr_acl_create_t; typedef struct {
--- a/usr/src/uts/common/fs/zfs/sys/zio_compress.h Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/sys/zio_compress.h Tue Jun 11 09:13:33 2013 -0800 @@ -36,11 +36,10 @@ extern "C" { #endif -/* - * Common signature for all zio compress/decompress functions. - */ +/* Common signature for all zio compress functions. */ typedef size_t zio_compress_func_t(void *src, void *dst, size_t s_len, size_t d_len, int); +/* Common signature for all zio decompress functions. */ typedef int zio_decompress_func_t(void *src, void *dst, size_t s_len, size_t d_len, int);
--- a/usr/src/uts/common/fs/zfs/txg.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/txg.c Tue Jun 11 09:13:33 2013 -0800 @@ -567,8 +567,8 @@ /* * Delay this thread by delay nanoseconds if we are still in the open - * transaction group and there is already a waiting txg quiesing or quiesced. - * Abort the delay if this txg stalls or enters the quiesing state. + * transaction group and there is already a waiting txg quiescing or quiesced. + * Abort the delay if this txg stalls or enters the quiescing state. */ void txg_delay(dsl_pool_t *dp, uint64_t txg, hrtime_t delay, hrtime_t resolution) @@ -576,7 +576,7 @@ tx_state_t *tx = &dp->dp_tx; hrtime_t start = gethrtime(); - /* don't delay if this txg could transition to quiesing immediately */ + /* don't delay if this txg could transition to quiescing immediately */ if (tx->tx_open_txg > txg || tx->tx_syncing_txg == txg-1 || tx->tx_synced_txg == txg-1) return;
--- a/usr/src/uts/common/fs/zfs/vdev.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/vdev.c Tue Jun 11 09:13:33 2013 -0800 @@ -956,9 +956,11 @@ } /* - * Determine whether this device is accessible by reading and writing - * to several known locations: the pad regions of each vdev label - * but the first (which we leave alone in case it contains a VTOC). + * Determine whether this device is accessible. + * + * Read and write to several known locations: the pad regions of each + * vdev label but the first, which we leave alone in case it contains + * a VTOC. */ zio_t * vdev_probe(vdev_t *vd, zio_t *zio) @@ -2179,10 +2181,12 @@ } /* - * Online the given vdev. If 'unspare' is set, it implies two things. First, - * any attached spare device should be detached when the device finishes - * resilvering. Second, the online should be treated like a 'test' online case, - * so no FMA events are generated if the device fails to open. + * Online the given vdev. + * + * If 'ZFS_ONLINE_UNSPARE' is set, it implies two things. First, any attached + * spare device should be detached when the device finishes resilvering. + * Second, the online should be treated like a 'test' online case, so no FMA + * events are generated if the device fails to open. */ int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags, vdev_state_t *newstate)
--- a/usr/src/uts/common/fs/zfs/vdev_queue.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/vdev_queue.c Tue Jun 11 09:13:33 2013 -0800 @@ -36,13 +36,14 @@ /* * These tunables are for performance analysis. */ + +/* The maximum number of I/Os concurrently pending to each device. */ +int zfs_vdev_max_pending = 10; + /* - * zfs_vdev_max_pending is the maximum number of i/os concurrently - * pending to each device. zfs_vdev_min_pending is the initial number - * of i/os pending to each device (before it starts ramping up to - * max_pending). + * The initial number of I/Os pending to each device, before it starts ramping + * up to zfs_vdev_max_pending. */ -int zfs_vdev_max_pending = 10; int zfs_vdev_min_pending = 4; /*
--- a/usr/src/uts/common/fs/zfs/vdev_raidz.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/vdev_raidz.c Tue Jun 11 09:13:33 2013 -0800 @@ -60,6 +60,7 @@ * o addition (+) is represented by a bitwise XOR * o subtraction (-) is therefore identical to addition: A + B = A - B * o multiplication of A by 2 is defined by the following bitwise expression: + * * (A * 2)_7 = A_6 * (A * 2)_6 = A_5 * (A * 2)_5 = A_4 @@ -118,7 +119,7 @@ uint64_t rm_missingparity; /* Count of missing parity devices */ uint64_t rm_firstdatacol; /* First data column/parity count */ uint64_t rm_nskip; /* Skipped sectors for padding */ - uint64_t rm_skipstart; /* Column index of padding start */ + uint64_t rm_skipstart; /* Column index of padding start */ void *rm_datacopy; /* rm_asize-buffer of copied data */ uintptr_t rm_reports; /* # of referencing checksum reports */ uint8_t rm_freed; /* map no longer has referencing ZIO */ @@ -158,10 +159,7 @@ */ int vdev_raidz_default_to_general; -/* - * These two tables represent powers and logs of 2 in the Galois field defined - * above. These values were computed by repeatedly multiplying by 2 as above. - */ +/* Powers of 2 in the Galois field defined above. */ static const uint8_t vdev_raidz_pow2[256] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1d, 0x3a, 0x74, 0xe8, 0xcd, 0x87, 0x13, 0x26, @@ -196,6 +194,7 @@ 0x2c, 0x58, 0xb0, 0x7d, 0xfa, 0xe9, 0xcf, 0x83, 0x1b, 0x36, 0x6c, 0xd8, 0xad, 0x47, 0x8e, 0x01 }; +/* Logs of 2 in the Galois field defined above. */ static const uint8_t vdev_raidz_log2[256] = { 0x00, 0x00, 0x01, 0x19, 0x02, 0x32, 0x1a, 0xc6, 0x03, 0xdf, 0x33, 0xee, 0x1b, 0x68, 0xc7, 0x4b,
--- a/usr/src/uts/common/fs/zfs/zfs_acl.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_acl.c Tue Jun 11 09:13:33 2013 -0800 @@ -1362,7 +1362,8 @@ zacep = (void *)((uintptr_t)zacep + abstract_size); new_count++; new_bytes += abstract_size; - } if (masks.deny1) { + } + if (masks.deny1) { zfs_set_ace(aclp, zacep, masks.deny1, DENY, -1, ACE_OWNER); zacep = (void *)((uintptr_t)zacep + abstract_size); new_count++; @@ -1766,7 +1767,7 @@ } /* - * Retrieve a files ACL + * Retrieve a file's ACL */ int zfs_getacl(znode_t *zp, vsecattr_t *vsecp, boolean_t skipaclchk, cred_t *cr) @@ -1921,7 +1922,7 @@ } /* - * Set a files ACL + * Set a file's ACL */ int zfs_setacl(znode_t *zp, vsecattr_t *vsecp, boolean_t skipaclchk, cred_t *cr) @@ -2342,6 +2343,7 @@ /* * Determine whether Access should be granted/denied. + * * The least priv subsytem is always consulted as a basic privilege * can define any form of access. */ @@ -2537,7 +2539,6 @@ * Determine whether Access should be granted/deny, without * consulting least priv subsystem. * - * * The following chart is the recommended NFSv4 enforcement for * ability to delete an object. *
--- a/usr/src/uts/common/fs/zfs/zfs_ctldir.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_ctldir.c Tue Jun 11 09:13:33 2013 -0800 @@ -1051,6 +1051,7 @@ /* * pvp is the '.zfs' directory (zfsctl_node_t). + * * Creates vp, which is '.zfs/snapshot' (zfsctl_snapdir_t). * * This function is the callback to create a GFS vnode for '.zfs/snapshot'
--- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c Tue Jun 11 09:13:33 2013 -0800 @@ -323,9 +323,7 @@ } /* - * zfs_earlier_version - * - * Return non-zero if the spa version is less than requested version. + * Return non-zero if the spa version is less than requested version. */ static int zfs_earlier_version(const char *name, int version) @@ -343,8 +341,6 @@ } /* - * zpl_earlier_version - * * Return TRUE if the ZPL version is less than requested version. */ static boolean_t @@ -2955,10 +2951,10 @@ /* * inputs: + * os parent objset pointer (NULL if root fs) + * fuids_ok fuids allowed in this version of the spa? + * sa_ok SAs allowed in this version of the spa? * createprops list of properties requested by creator - * default_zplver zpl version to use if unspecified in createprops - * fuids_ok fuids allowed in this version of the spa? - * os parent objset pointer (NULL if root fs) * * outputs: * zplprops values for the zplprops we attach to the master node object
--- a/usr/src/uts/common/fs/zfs/zfs_log.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_log.c Tue Jun 11 09:13:33 2013 -0800 @@ -211,9 +211,8 @@ } /* - * zfs_log_create() is used to handle TX_CREATE, TX_CREATE_ATTR, TX_MKDIR, - * TX_MKDIR_ATTR and TX_MKXATTR - * transactions. + * Handles TX_CREATE, TX_CREATE_ATTR, TX_MKDIR, TX_MKDIR_ATTR and + * TK_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 @@ -340,7 +339,7 @@ } /* - * zfs_log_remove() handles both TX_REMOVE and TX_RMDIR transactions. + * Handles both TX_REMOVE and TX_RMDIR transactions. */ void zfs_log_remove(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, @@ -364,7 +363,7 @@ } /* - * zfs_log_link() handles TX_LINK transactions. + * Handles TX_LINK transactions. */ void zfs_log_link(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, @@ -387,7 +386,7 @@ } /* - * zfs_log_symlink() handles TX_SYMLINK transactions. + * Handles TX_SYMLINK transactions. */ void zfs_log_symlink(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, @@ -419,7 +418,7 @@ } /* - * zfs_log_rename() handles TX_RENAME transactions. + * Handles TX_RENAME transactions. */ void zfs_log_rename(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, @@ -445,7 +444,7 @@ } /* - * zfs_log_write() handles TX_WRITE transactions. + * Handles TX_WRITE transactions. */ ssize_t zfs_immediate_write_sz = 32768; @@ -524,7 +523,7 @@ } /* - * zfs_log_truncate() handles TX_TRUNCATE transactions. + * Handles TX_TRUNCATE transactions. */ void zfs_log_truncate(zilog_t *zilog, dmu_tx_t *tx, int txtype, @@ -547,7 +546,7 @@ } /* - * zfs_log_setattr() handles TX_SETATTR transactions. + * Handles TX_SETATTR transactions. */ void zfs_log_setattr(zilog_t *zilog, dmu_tx_t *tx, int txtype, @@ -609,7 +608,7 @@ } /* - * zfs_log_acl() handles TX_ACL transactions. + * Handles TX_ACL transactions. */ void zfs_log_acl(zilog_t *zilog, dmu_tx_t *tx, znode_t *zp,
--- a/usr/src/uts/common/fs/zfs/zfs_rlock.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_rlock.c Tue Jun 11 09:13:33 2013 -0800 @@ -28,7 +28,7 @@ /* * This file contains the code to implement file range locking in - * ZFS, although there isn't much specific to ZFS (all that comes to mind + * ZFS, although there isn't much specific to ZFS (all that comes to mind is * support for growing the blocksize). * * Interface
--- a/usr/src/uts/common/fs/zfs/zfs_sa.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_sa.c Tue Jun 11 09:13:33 2013 -0800 @@ -187,7 +187,7 @@ /* * I'm not convinced we should do any of this upgrade. * since the SA code can read both old/new znode formats - * with probably little to know performance difference. + * with probably little to no performance difference. * * All new files will be created with the new format. */
--- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c Tue Jun 11 09:13:33 2013 -0800 @@ -1348,13 +1348,12 @@ } /* - * zfs_check_global_label: - * Check that the hex label string is appropriate for the dataset - * being mounted into the global_zone proper. + * Check that the hex label string is appropriate for the dataset being + * mounted into the global_zone proper. * - * Return an error if the hex label string is not default or - * admin_low/admin_high. For admin_low labels, the corresponding - * dataset must be readonly. + * Return an error if the hex label string is not default or + * admin_low/admin_high. For admin_low labels, the corresponding + * dataset must be readonly. */ int zfs_check_global_label(const char *dsname, const char *hexsl) @@ -1376,15 +1375,12 @@ } /* - * zfs_mount_label_policy: - * Determine whether the mount is allowed according to MAC check. - * by comparing (where appropriate) label of the dataset against - * the label of the zone being mounted into. If the dataset has - * no label, create one. + * Determine whether the mount is allowed according to MAC check. + * by comparing (where appropriate) label of the dataset against + * the label of the zone being mounted into. If the dataset has + * no label, create one. * - * Returns: - * 0 : access allowed - * >0 : error code, such as EACCES + * Returns 0 if access allowed, error otherwise (e.g. EACCES) */ static int zfs_mount_label_policy(vfs_t *vfsp, char *osname)
--- a/usr/src/uts/common/fs/zfs/zfs_vnops.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_vnops.c Tue Jun 11 09:13:33 2013 -0800 @@ -91,11 +91,11 @@ * The ordering of events is important to avoid deadlocks and references * to freed memory. The example below illustrates the following Big Rules: * - * (1) A check must be made in each zfs thread for a mounted file system. + * (1) A check must be made in each zfs thread for a mounted file system. * This is done avoiding races using ZFS_ENTER(zfsvfs). - * A ZFS_EXIT(zfsvfs) is needed before all returns. Any znodes - * must be checked with ZFS_VERIFY_ZP(zp). Both of these macros - * can return EIO from the calling function. + * A ZFS_EXIT(zfsvfs) is needed before all returns. Any znodes + * must be checked with ZFS_VERIFY_ZP(zp). Both of these macros + * can return EIO from the calling function. * * (2) VN_RELE() should always be the last thing except for zil_commit() * (if necessary) and ZFS_EXIT(). This is for 3 reasons: @@ -127,7 +127,7 @@ * (5) If the operation succeeded, generate the intent log entry for it * before dropping locks. This ensures that the ordering of events * in the intent log matches the order in which they actually occurred. - * During ZIL replay the zfs_log_* functions will update the sequence + * During ZIL replay the zfs_log_* functions will update the sequence * number to indicate the zil transaction has replayed. * * (6) At the end of each vnode op, the DMU tx must always commit, @@ -384,7 +384,7 @@ * else we default from the dmu buffer. * * NOTE: We will always "break up" the IO into PAGESIZE uiomoves when - * the file is memory mapped. + * the file is memory mapped. */ static int mappedread(vnode_t *vp, int nbytes, uio_t *uio) @@ -433,8 +433,7 @@ * * OUT: uio - updated offset and range, buffer filled. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Side Effects: * vp - atime updated if byte count > 0 @@ -570,14 +569,14 @@ * IN: vp - vnode of file to be written to. * uio - structure supplying write location, range info, * and data buffer. - * ioflag - FAPPEND flag set if in append mode. + * ioflag - FAPPEND, FSYNC, and/or FDSYNC. FAPPEND is + * set if in append mode. * cr - credentials of caller. * ct - caller context (NFS/CIFS fem monitor only) * * OUT: uio - updated offset and range. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - ctime|mtime updated if byte count > 0 @@ -1148,8 +1147,7 @@ * * OUT: vpp - vnode of located entry, NULL if not found. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * NA @@ -1290,8 +1288,7 @@ * * OUT: vpp - vnode of created or trunc'd entry. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * dvp - ctime|mtime updated if new entry created @@ -1541,8 +1538,7 @@ * ct - caller context * flags - case flags * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * dvp - ctime|mtime @@ -1772,12 +1768,12 @@ * vap - attributes of new directory. * cr - credentials of caller. * ct - caller context + * flags - case flags * vsecp - ACL to be set * * OUT: vpp - vnode of created directory. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * dvp - ctime|mtime updated @@ -1957,8 +1953,7 @@ * ct - caller context * flags - case flags * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * dvp - ctime|mtime updated @@ -2076,7 +2071,7 @@ /* * Read as many directory entries as will fit into the provided * buffer from the given directory cursor position (specified in - * the uio structure. + * the uio structure). * * IN: vp - vnode of directory to read. * uio - structure supplying read location, range info, @@ -2088,8 +2083,7 @@ * OUT: uio - updated offset and range, buffer filled. * eofp - set to true if end-of-file detected. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - atime updated @@ -2408,7 +2402,7 @@ * * OUT: vap - attribute values. * - * RETURN: 0 (always succeeds) + * RETURN: 0 (always succeeds). */ /* ARGSUSED */ static int @@ -2610,8 +2604,7 @@ * cr - credentials of caller. * ct - caller context * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - ctime updated, mtime updated if size changed. @@ -2619,7 +2612,7 @@ /* ARGSUSED */ static int zfs_setattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr, - caller_context_t *ct) + caller_context_t *ct) { znode_t *zp = VTOZ(vp); zfsvfs_t *zfsvfs = zp->z_zfsvfs; @@ -3212,6 +3205,7 @@ if (attrzp) VN_RELE(ZTOV(attrzp)); + if (aclp) zfs_acl_free(aclp); @@ -3346,8 +3340,7 @@ * ct - caller context * flags - case flags * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * sdvp,tdvp - ctime|mtime updated @@ -3694,13 +3687,11 @@ * IN: dvp - Directory to contain new symbolic link. * link - Name for new symlink entry. * vap - Attributes of new entry. - * target - Target path of new symlink. * cr - credentials of caller. * ct - caller context * flags - case flags * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * dvp - ctime|mtime updated @@ -3846,14 +3837,13 @@ * the symbolic path referred to by vp. * * IN: vp - vnode of symbolic link. - * uoip - structure to contain the link path. + * uio - structure to contain the link path. * cr - credentials of caller. * ct - caller context * - * OUT: uio - structure to contain the link path. + * OUT: uio - structure containing the link path. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - atime updated @@ -3892,8 +3882,7 @@ * cr - credentials of caller. * ct - caller context * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * tdvp - ctime|mtime updated @@ -4061,8 +4050,7 @@ * OUT: offp - start of range pushed. * lenp - len of range pushed. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * NOTE: callers must have locked the page to be pushed. On * exit, the page (and all other pages in the kluster) must be @@ -4184,8 +4172,7 @@ * cr - credentials of caller. * ct - caller context. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - ctime|mtime updated @@ -4350,8 +4337,7 @@ * noffp - pointer to new file offset * ct - caller context * - * RETURN: 0 if success - * EINVAL if new offset invalid + * RETURN: 0 on success, EINVAL if new offset invalid. */ /* ARGSUSED */ static int @@ -4487,8 +4473,7 @@ * OUT: protp - protection mode of created pages. * pl - list of pages created. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - atime updated @@ -4496,8 +4481,8 @@ /* ARGSUSED */ static int zfs_getpage(vnode_t *vp, offset_t off, size_t len, uint_t *protp, - page_t *pl[], size_t plsz, struct seg *seg, caddr_t addr, - enum seg_rw rw, cred_t *cr, caller_context_t *ct) + page_t *pl[], size_t plsz, struct seg *seg, caddr_t addr, + enum seg_rw rw, cred_t *cr, caller_context_t *ct) { znode_t *zp = VTOZ(vp); zfsvfs_t *zfsvfs = zp->z_zfsvfs; @@ -4572,15 +4557,11 @@ * Request a memory map for a section of a file. This code interacts * with common code and the VM system as follows: * - * common code calls mmap(), which ends up in smmap_common() - * - * this calls VOP_MAP(), which takes you into (say) zfs - * - * zfs_map() calls as_map(), passing segvn_create() as the callback - * - * segvn_create() creates the new segment and calls VOP_ADDMAP() - * - * zfs_addmap() updates z_mapcnt + * - common code calls mmap(), which ends up in smmap_common() + * - this calls VOP_MAP(), which takes you into (say) zfs + * - zfs_map() calls as_map(), passing segvn_create() as the callback + * - segvn_create() creates the new segment and calls VOP_ADDMAP() + * - zfs_addmap() updates z_mapcnt */ /*ARGSUSED*/ static int @@ -4722,8 +4703,7 @@ * cr - credentials of caller [UNUSED]. * ct - caller context. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure. * * Timestamps: * vp - ctime|mtime updated @@ -4938,13 +4918,14 @@ } /* - * Tunable, both must be a power of 2. - * - * zcr_blksz_min: the smallest read we may consider to loan out an arcbuf - * zcr_blksz_max: if set to less than the file block size, allow loaning out of - * an arcbuf for a partial block read + * The smallest read we may consider to loan out an arcbuf. + * This must be a power of 2. */ int zcr_blksz_min = (1 << 10); /* 1K */ +/* + * If set to less than the file block size, allow loaning out of an + * arcbuf for a partial block read. This must be a power of 2. + */ int zcr_blksz_max = (1 << 17); /* 128K */ /*ARGSUSED*/ @@ -5218,10 +5199,12 @@ /* * Extended attribute directory vnode operations template - * This template is identical to the directory vnodes - * operation template except for restricted operations: - * VOP_MKDIR() - * VOP_SYMLINK() + * + * This template is identical to the directory vnodes + * operation template except for restricted operations: + * VOP_MKDIR() + * VOP_SYMLINK() + * * Note that there are other restrictions embedded in: * zfs_create() - restrict type to VREG * zfs_link() - no links into/out of attribute space
--- a/usr/src/uts/common/fs/zfs/zfs_znode.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zfs_znode.c Tue Jun 11 09:13:33 2013 -0800 @@ -1006,9 +1006,8 @@ } /* - * zfs_xvattr_set only updates the in-core attributes - * it is assumed the caller will be doing an sa_bulk_update - * to push the changes out + * Update in-core attributes. It is assumed the caller will be doing an + * sa_bulk_update to push the changes out. */ void zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx) @@ -1447,8 +1446,7 @@ * IN: zp - znode of file to free data in. * end - new end-of-file * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure */ static int zfs_extend(znode_t *zp, uint64_t end) @@ -1525,8 +1523,7 @@ * off - start of section to free. * len - length of section to free. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure */ static int zfs_free_range(znode_t *zp, uint64_t off, uint64_t len) @@ -1564,8 +1561,7 @@ * IN: zp - znode of file to free data in. * end - new end-of-file. * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure */ static int zfs_trunc(znode_t *zp, uint64_t end) @@ -1663,8 +1659,7 @@ * flag - current file open mode flags. * log - TRUE if this action should be logged * - * RETURN: 0 if success - * error code if failure + * RETURN: 0 on success, error code on failure */ int zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
--- a/usr/src/uts/common/fs/zfs/zil.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zil.c Tue Jun 11 09:13:33 2013 -0800 @@ -66,9 +66,9 @@ */ /* - * This global ZIL switch affects all pools + * Disable intent logging replay. This global ZIL switch affects all pools. */ -int zil_replay_disable = 0; /* disable intent logging replay */ +int zil_replay_disable = 0; /* * Tunable parameter for debugging or performance analysis. Setting @@ -879,6 +879,7 @@ /* * Define a limited set of intent log block sizes. + * * These must be a multiple of 4KB. Note only the amount used (again * aligned to 4KB) actually gets written. However, we can't always just * allocate SPA_MAXBLOCKSIZE as the slog space could be exhausted.
--- a/usr/src/uts/common/fs/zfs/zio.c Tue Jun 11 09:12:34 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/zio.c Tue Jun 11 09:13:33 2013 -0800 @@ -1185,13 +1185,16 @@ /* * Execute the I/O pipeline until one of the following occurs: - * (1) the I/O completes; (2) the pipeline stalls waiting for - * dependent child I/Os; (3) the I/O issues, so we're waiting - * for an I/O completion interrupt; (4) the I/O is delegated by - * vdev-level caching or aggregation; (5) the I/O is deferred - * due to vdev-level queueing; (6) the I/O is handed off to - * another thread. In all cases, the pipeline stops whenever - * there's no CPU work; it never burns a thread in cv_wait(). + * + * (1) the I/O completes + * (2) the pipeline stalls waiting for dependent child I/Os + * (3) the I/O issues, so we're waiting for an I/O completion interrupt + * (4) the I/O is delegated by vdev-level caching or aggregation + * (5) the I/O is deferred due to vdev-level queueing + * (6) the I/O is handed off to another thread. + * + * In all cases, the pipeline stops whenever there's no CPU work; it never + * burns a thread in cv_wait(). * * There's no locking on io_stage because there's no legitimate way * for multiple threads to be attempting to process the same I/O.