]>
git.proxmox.com Git - mirror_zfs.git/blob - include/os/linux/zfs/sys/zfs_vnops_os.h
7a1db7deeec80528a9cbf00f35872f5333075571
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 https://opensource.org/licenses/CDDL-1.0.
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_OS_H
26 #define _SYS_FS_ZFS_VNOPS_OS_H
28 #include <sys/vnode.h>
29 #include <sys/xvattr.h>
32 #include <sys/fcntl.h>
33 #include <sys/pathname.h>
35 #include <sys/zfs_file.h>
41 extern int zfs_open(struct inode
*ip
, int mode
, int flag
, cred_t
*cr
);
42 extern int zfs_close(struct inode
*ip
, int flag
, cred_t
*cr
);
43 extern int zfs_write_simple(znode_t
*zp
, const void *data
, size_t len
,
44 loff_t pos
, size_t *resid
);
45 extern int zfs_lookup(znode_t
*dzp
, char *nm
, znode_t
**zpp
, int flags
,
46 cred_t
*cr
, int *direntflags
, pathname_t
*realpnp
);
47 extern int zfs_create(znode_t
*dzp
, char *name
, vattr_t
*vap
, int excl
,
48 int mode
, znode_t
**zpp
, cred_t
*cr
, int flag
, vsecattr_t
*vsecp
,
50 extern int zfs_tmpfile(struct inode
*dip
, vattr_t
*vapzfs
, int excl
,
51 int mode
, struct inode
**ipp
, cred_t
*cr
, int flag
, vsecattr_t
*vsecp
,
53 extern int zfs_remove(znode_t
*dzp
, char *name
, cred_t
*cr
, int flags
);
54 extern int zfs_mkdir(znode_t
*dzp
, char *dirname
, vattr_t
*vap
,
55 znode_t
**zpp
, cred_t
*cr
, int flags
, vsecattr_t
*vsecp
, zidmap_t
*mnt_ns
);
56 extern int zfs_rmdir(znode_t
*dzp
, char *name
, znode_t
*cwd
,
57 cred_t
*cr
, int flags
);
58 extern int zfs_readdir(struct inode
*ip
, zpl_dir_context_t
*ctx
, cred_t
*cr
);
59 extern int zfs_getattr_fast(zidmap_t
*, struct inode
*ip
, struct kstat
*sp
);
60 extern int zfs_setattr(znode_t
*zp
, vattr_t
*vap
, int flag
, cred_t
*cr
,
62 extern int zfs_rename(znode_t
*sdzp
, char *snm
, znode_t
*tdzp
,
63 char *tnm
, cred_t
*cr
, int flags
, uint64_t rflags
, vattr_t
*wo_vap
,
65 extern int zfs_symlink(znode_t
*dzp
, char *name
, vattr_t
*vap
,
66 char *link
, znode_t
**zpp
, cred_t
*cr
, int flags
, zidmap_t
*mnt_ns
);
67 extern int zfs_readlink(struct inode
*ip
, zfs_uio_t
*uio
, cred_t
*cr
);
68 extern int zfs_link(znode_t
*tdzp
, znode_t
*szp
,
69 char *name
, cred_t
*cr
, int flags
);
70 extern void zfs_inactive(struct inode
*ip
);
71 extern int zfs_space(znode_t
*zp
, int cmd
, flock64_t
*bfp
, int flag
,
72 offset_t offset
, cred_t
*cr
);
73 extern int zfs_fid(struct inode
*ip
, fid_t
*fidp
);
74 extern int zfs_getpage(struct inode
*ip
, struct page
*pp
);
75 extern int zfs_putpage(struct inode
*ip
, struct page
*pp
,
76 struct writeback_control
*wbc
, boolean_t for_sync
);
77 extern int zfs_dirty_inode(struct inode
*ip
, int flags
);
78 extern int zfs_map(struct inode
*ip
, offset_t off
, caddr_t
*addrp
,
79 size_t len
, unsigned long vm_flags
);
80 extern void zfs_zrele_async(znode_t
*zp
);
86 #endif /* _SYS_FS_ZFS_VNOPS_H */