]>
git.proxmox.com Git - mirror_zfs.git/blob - include/sys/zfs_vnops.h
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
25 #ifndef _SYS_FS_ZFS_VNOPS_H
26 #define _SYS_FS_ZFS_VNOPS_H
28 #include <sys/vnode.h>
29 #include <sys/xvattr.h>
32 #include <sys/fcntl.h>
33 #include <sys/pathname.h>
39 extern int zfs_open(struct inode
*ip
, int mode
, int flag
, cred_t
*cr
);
40 extern int zfs_close(struct inode
*ip
, int flag
, cred_t
*cr
);
41 extern int zfs_read(struct inode
*ip
, uio_t
*uio
, int ioflag
, cred_t
*cr
);
42 extern int zfs_write(struct inode
*ip
, uio_t
*uio
, int ioflag
, cred_t
*cr
);
43 extern int zfs_access(struct inode
*ip
, int mode
, int flag
, cred_t
*cr
);
44 extern int zfs_lookup(struct inode
*dip
, char *nm
, struct inode
**ipp
,
45 int flags
, cred_t
*cr
, int *direntflags
, pathname_t
*realpnp
);
46 extern int zfs_create(struct inode
*dip
, char *name
, vattr_t
*vap
, int excl
,
47 int mode
, struct inode
**ipp
, cred_t
*cr
, int flag
, vsecattr_t
*vsecp
);
48 extern int zfs_remove(struct inode
*dip
, char *name
, cred_t
*cr
);
49 extern int zfs_mkdir(struct inode
*dip
, char *dirname
, vattr_t
*vap
,
50 struct inode
**ipp
, cred_t
*cr
, int flags
, vsecattr_t
*vsecp
);
51 extern int zfs_rmdir(struct inode
*dip
, char *name
, struct inode
*cwd
,
52 cred_t
*cr
, int flags
);
53 extern int zfs_readdir(struct inode
*ip
, void *dirent
, filldir_t filldir
,
54 loff_t
*pos
, cred_t
*cr
);
55 extern int zfs_fsync(struct inode
*ip
, int syncflag
, cred_t
*cr
);
56 extern int zfs_getattr(struct inode
*ip
, vattr_t
*vap
, int flag
, cred_t
*cr
);
57 extern int zfs_setattr(struct inode
*ip
, vattr_t
*vap
, int flag
, cred_t
*cr
);
58 extern int zfs_rename(struct inode
*sdip
, char *snm
, struct inode
*tdip
,
59 char *tnm
, cred_t
*cr
, int flags
);
60 extern int zfs_symlink(struct inode
*dip
, char *name
, vattr_t
*vap
,
61 char *link
, struct inode
**ipp
, cred_t
*cr
, int flags
);
62 extern int zfs_follow_link(struct dentry
*dentry
, struct nameidata
*nd
);
63 extern int zfs_readlink(struct inode
*ip
, uio_t
*uio
, cred_t
*cr
);
64 extern int zfs_link(struct inode
*tdip
, struct inode
*sip
,
65 char *name
, cred_t
*cr
);
66 extern void zfs_inactive(struct inode
*ip
);
67 extern int zfs_space(struct inode
*ip
, int cmd
, flock64_t
*bfp
, int flag
,
68 offset_t offset
, cred_t
*cr
);
69 extern int zfs_fid(struct inode
*ip
, fid_t
*fidp
);
70 extern int zfs_getsecattr(struct inode
*ip
, vsecattr_t
*vsecp
, int flag
,
72 extern int zfs_setsecattr(struct inode
*ip
, vsecattr_t
*vsecp
, int flag
,
74 extern int zfs_getpage(struct inode
*ip
, struct page
*pl
[], int nr_pages
);
75 extern int zfs_putpage(struct page
*page
, struct writeback_control
*wbc
,
82 #endif /* _SYS_FS_ZFS_VNOPS_H */