usr/src/uts/common/sys/gfs.h
author stephanie scheffler <Stephanie.Scheffler@Sun.COM>
Thu, 06 May 2010 15:08:31 -0600
changeset 12321 c2943f5c6eb9
parent 6492 903545192033
permissions -rw-r--r--
6898657 zfs upgrade -v and zpool upgrade -v version URL has changed 6934885 'zfs recv' not output valid option of '-e' 6732341 gfs.h needs to be marked as Consolidation Private
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
3898
c788126f2a20 PSARC/2007/124 Strong Type-Checking for VFS Operation Registration Mechanism
rsb
parents: 0
diff changeset
     5
 * Common Development and Distribution License (the "License").
c788126f2a20 PSARC/2007/124 Strong Type-Checking for VFS Operation Registration Mechanism
rsb
parents: 0
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
3957
86c9dda5df37 PSARC/2007/052 In-kernel Sharetab
th199096
parents: 3898
diff changeset
    21
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
12321
c2943f5c6eb9 6898657 zfs upgrade -v and zpool upgrade -v version URL has changed
stephanie scheffler <Stephanie.Scheffler@Sun.COM>
parents: 6492
diff changeset
    23
 * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
c2943f5c6eb9 6898657 zfs upgrade -v and zpool upgrade -v version URL has changed
stephanie scheffler <Stephanie.Scheffler@Sun.COM>
parents: 6492
diff changeset
    24
 */
c2943f5c6eb9 6898657 zfs upgrade -v and zpool upgrade -v version URL has changed
stephanie scheffler <Stephanie.Scheffler@Sun.COM>
parents: 6492
diff changeset
    25
c2943f5c6eb9 6898657 zfs upgrade -v and zpool upgrade -v version URL has changed
stephanie scheffler <Stephanie.Scheffler@Sun.COM>
parents: 6492
diff changeset
    26
/*
c2943f5c6eb9 6898657 zfs upgrade -v and zpool upgrade -v version URL has changed
stephanie scheffler <Stephanie.Scheffler@Sun.COM>
parents: 6492
diff changeset
    27
 * These are Consolidation Private interfaces and are subject to change.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#ifndef _SYS_GFS_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
#define	_SYS_GFS_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
#include <sys/types.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#include <sys/vnode.h>
3898
c788126f2a20 PSARC/2007/124 Strong Type-Checking for VFS Operation Registration Mechanism
rsb
parents: 0
diff changeset
    35
#include <sys/vfs_opreg.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#include <sys/mutex.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#include <sys/dirent.h>
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
    38
#include <sys/extdirent.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#include <sys/uio.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
#include <sys/list.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#include <sys/pathname.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
typedef struct gfs_opsvec {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
	const char		*gfsv_name;	/* vnode description */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
	const fs_operation_def_t *gfsv_template; /* ops template */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
	vnodeops_t		**gfsv_ops;	/* ptr to result */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
} gfs_opsvec_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
int gfs_make_opsvec(gfs_opsvec_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
#define	GFS_CACHE_VNODE		0x1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
typedef struct gfs_dirent {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
	char			*gfse_name;	/* entry name */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	vnode_t *(*gfse_ctor)(vnode_t *);	/* constructor */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	int			gfse_flags;	/* flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	list_node_t		gfse_link;	/* dynamic list */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	vnode_t			*gfse_vnode;	/* cached vnode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
} gfs_dirent_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
typedef enum gfs_type {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
	GFS_DIR,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
	GFS_FILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
} gfs_type_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
typedef struct gfs_file {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
	vnode_t		*gfs_vnode;	/* current vnode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
	vnode_t		*gfs_parent;	/* parent vnode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
	size_t		gfs_size;	/* size of private data structure */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
	gfs_type_t	gfs_type;	/* type of vnode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
	int		gfs_index;	/* index in parent dir */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
	ino64_t		gfs_ino;	/* inode for this vnode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
} gfs_file_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
    79
typedef int (*gfs_readdir_cb)(vnode_t *, void *, int *, offset_t *,
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
    80
    offset_t *, void *, int);
5331
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
    81
typedef int (*gfs_lookup_cb)(vnode_t *, const char *, vnode_t **, ino64_t *,
6492
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
    82
    cred_t *, int, int *, pathname_t *);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
typedef ino64_t (*gfs_inode_cb)(vnode_t *, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
typedef struct gfs_dir {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	gfs_file_t	gfsd_file;	/* generic file attributes */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
	gfs_dirent_t	*gfsd_static;	/* statically defined entries */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	int		gfsd_nstatic;	/* # static entries */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	kmutex_t	gfsd_lock;	/* protects entries */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	int		gfsd_maxlen;	/* maximum name length */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	gfs_readdir_cb	gfsd_readdir;	/* readdir() callback */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	gfs_lookup_cb	gfsd_lookup;	/* lookup() callback */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	gfs_inode_cb	gfsd_inode;	/* get an inode number */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
} gfs_dir_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
struct vfs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
extern vnode_t *gfs_file_create(size_t, vnode_t *, vnodeops_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
extern vnode_t *gfs_dir_create(size_t, vnode_t *, vnodeops_t *,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
    gfs_dirent_t *, gfs_inode_cb, int, gfs_readdir_cb, gfs_lookup_cb);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
extern vnode_t *gfs_root_create(size_t, struct vfs *, vnodeops_t *, ino64_t,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
    gfs_dirent_t *, gfs_inode_cb, int, gfs_readdir_cb, gfs_lookup_cb);
3957
86c9dda5df37 PSARC/2007/052 In-kernel Sharetab
th199096
parents: 3898
diff changeset
   103
extern vnode_t *gfs_root_create_file(size_t, struct vfs *, vnodeops_t *,
86c9dda5df37 PSARC/2007/052 In-kernel Sharetab
th199096
parents: 3898
diff changeset
   104
    ino64_t);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
extern void *gfs_file_inactive(vnode_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
extern void *gfs_dir_inactive(vnode_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
6492
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
   109
extern int gfs_dir_case_lookup(vnode_t *, const char *, vnode_t **, cred_t *,
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
   110
    int, int *, pathname_t *);
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
   111
extern int gfs_dir_lookup(vnode_t *, const char *, vnode_t **, cred_t *,
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
   112
    int, int *, pathname_t *);
5331
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   113
extern int gfs_dir_readdir(vnode_t *, uio_t *, int *, void *, cred_t *,
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   114
    caller_context_t *, int flags);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
#define	gfs_dir_lock(gd)	mutex_enter(&(gd)->gfsd_lock)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
#define	gfs_dir_unlock(gd)	mutex_exit(&(gd)->gfsd_lock)
6492
903545192033 6654808 FIGNORECASE lookups in a zfs xattr dir don't provide 'realname' data
timh
parents: 5663
diff changeset
   118
#define	GFS_DIR_LOCKED(gd)	MUTEX_HELD(&(gd)->gfsd_lock)
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
#define	gfs_file_parent(vp)	(((gfs_file_t *)(vp)->v_data)->gfs_parent)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
#define	gfs_file_index(vp)	(((gfs_file_t *)(vp)->v_data)->gfs_index)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
#define	gfs_file_set_index(vp, idx)	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	(((gfs_file_t *)(vp)->v_data)->gfs_index = (idx))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
#define	gfs_file_inode(vp)	(((gfs_file_t *)(vp)->v_data)->gfs_ino)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
#define	gfs_file_set_inode(vp, ino)	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	(((gfs_file_t *)(vp)->v_data)->gfs_ino = (ino))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
typedef struct gfs_readdir_state {
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   131
	void		*grd_dirent;	/* directory entry buffer */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
	size_t		grd_namlen;	/* max file name length */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
	size_t		grd_ureclen;	/* exported record size */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	ssize_t		grd_oresid;	/* original uio_resid */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	ino64_t		grd_parent;	/* inode of parent */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
	ino64_t		grd_self;	/* inode of self */
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   137
	int		grd_flags;	/* flags from VOP_READDIR */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
} gfs_readdir_state_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
extern int gfs_readdir_init(gfs_readdir_state_t *, int, int, uio_t *, ino64_t,
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   141
    ino64_t, int);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
extern int gfs_readdir_emit(gfs_readdir_state_t *, uio_t *, offset_t, ino64_t,
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   143
    const char *, int);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
extern int gfs_readdir_emitn(gfs_readdir_state_t *, uio_t *, offset_t, ino64_t,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
    unsigned long);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
extern int gfs_readdir_pred(gfs_readdir_state_t *, uio_t *, offset_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
extern int gfs_readdir_fini(gfs_readdir_state_t *, int, int *, int);
5663
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   148
extern int gfs_get_parent_ino(vnode_t *, cred_t *, caller_context_t *,
029cc4273b57 6627223 gfs needs to support extended dirent flags
ck153898
parents: 5331
diff changeset
   149
    ino64_t *, ino64_t *);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
5331
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   151
/*
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   152
 * Objects with real extended attributes will get their . and ..
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   153
 * readdir entries from the real xattr directory. GFS_STATIC_ENTRY_OFFSET
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   154
 * lets us skip right to the static entries in the GFS directory.
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   155
 */
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   156
#define	GFS_STATIC_ENTRY_OFFSET	((offset_t)2)
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   157
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
extern int gfs_lookup_dot(vnode_t **, vnode_t *, vnode_t *, const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
extern int gfs_vop_lookup(vnode_t *, char *, vnode_t **, pathname_t *,
5331
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   161
    int, vnode_t *, cred_t *, caller_context_t *, int *, pathname_t *);
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   162
extern int gfs_vop_readdir(vnode_t *, uio_t *, cred_t *, int *,
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   163
    caller_context_t *, int);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
extern int gfs_vop_map(vnode_t *, offset_t, struct as *, caddr_t *,
5331
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   165
    size_t, uchar_t, uchar_t, uint_t, cred_t *, caller_context_t *);
3047ad28a67b PSARC/2007/218 caller_context_t in all VOPs
amw
parents: 3957
diff changeset
   166
extern void gfs_vop_inactive(vnode_t *, cred_t *, caller_context_t *);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
#endif	/* _SYS_GFS_H */