Deleted Added
sdiff udiff text old ( 30430 ) new ( 30431 )
full compact
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
37 * $Id: nfs_vnops.c,v 1.63 1997/10/15 07:42:31 phk Exp $
38 */
39
40
41/*
42 * vnode op calls for Sun NFS version 2 and 3
43 */
44
45#include <sys/param.h>

--- 84 unchanged lines hidden (view full) ---

130static int nfs_pathconf __P((struct vop_pathconf_args *));
131static int nfs_advlock __P((struct vop_advlock_args *));
132static int nfs_bwrite __P((struct vop_bwrite_args *));
133/*
134 * Global vfs data structures for nfs
135 */
136vop_t **nfsv2_vnodeop_p;
137static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = {
138 { &vop_default_desc, (vop_t *) vn_default_error },
139 { &vop_abortop_desc, (vop_t *) nfs_abortop },
140 { &vop_access_desc, (vop_t *) nfs_access },
141 { &vop_advlock_desc, (vop_t *) nfs_advlock },
142 { &vop_bmap_desc, (vop_t *) nfs_bmap },
143 { &vop_bwrite_desc, (vop_t *) nfs_bwrite },
144 { &vop_close_desc, (vop_t *) nfs_close },
145 { &vop_create_desc, (vop_t *) nfs_create },
146 { &vop_fsync_desc, (vop_t *) nfs_fsync },
147 { &vop_getattr_desc, (vop_t *) nfs_getattr },
148 { &vop_getpages_desc, (vop_t *) nfs_getpages },
149 { &vop_inactive_desc, (vop_t *) nfs_inactive },
150 { &vop_ioctl_desc, (vop_t *) nfs_ioctl },
151 { &vop_islocked_desc, (vop_t *) nfs_islocked },
152 { &vop_lease_desc, (vop_t *) nfs_lease_check },
153 { &vop_link_desc, (vop_t *) nfs_link },
154 { &vop_lock_desc, (vop_t *) nfs_lock },
155 { &vop_lookup_desc, (vop_t *) nfs_lookup },
156 { &vop_mkdir_desc, (vop_t *) nfs_mkdir },
157 { &vop_mknod_desc, (vop_t *) nfs_mknod },
158 { &vop_mmap_desc, (vop_t *) nfs_mmap },
159 { &vop_open_desc, (vop_t *) nfs_open },
160 { &vop_pathconf_desc, (vop_t *) nfs_pathconf },
161 { &vop_poll_desc, (vop_t *) nfs_poll },
162 { &vop_print_desc, (vop_t *) nfs_print },
163 { &vop_read_desc, (vop_t *) nfs_read },
164 { &vop_readdir_desc, (vop_t *) nfs_readdir },
165 { &vop_readlink_desc, (vop_t *) nfs_readlink },
166 { &vop_reclaim_desc, (vop_t *) nfs_reclaim },
167 { &vop_remove_desc, (vop_t *) nfs_remove },
168 { &vop_rename_desc, (vop_t *) nfs_rename },
169 { &vop_revoke_desc, (vop_t *) nfs_revoke },
170 { &vop_rmdir_desc, (vop_t *) nfs_rmdir },
171 { &vop_seek_desc, (vop_t *) nfs_seek },
172 { &vop_setattr_desc, (vop_t *) nfs_setattr },
173 { &vop_strategy_desc, (vop_t *) nfs_strategy },
174 { &vop_symlink_desc, (vop_t *) nfs_symlink },
175 { &vop_unlock_desc, (vop_t *) nfs_unlock },
176 { &vop_write_desc, (vop_t *) nfs_write },
177 { NULL, NULL }
178};
179static struct vnodeopv_desc nfsv2_vnodeop_opv_desc =
180 { &nfsv2_vnodeop_p, nfsv2_vnodeop_entries };
181VNODEOP_SET(nfsv2_vnodeop_opv_desc);
182
183/*
184 * Special device vnode ops
185 */
186vop_t **spec_nfsv2nodeop_p;
187static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
188 { &vop_default_desc, (vop_t *) vn_default_error },
189 { &vop_abortop_desc, (vop_t *) spec_abortop },
190 { &vop_access_desc, (vop_t *) nfsspec_access },
191 { &vop_advlock_desc, (vop_t *) spec_advlock },
192 { &vop_bmap_desc, (vop_t *) spec_bmap },
193 { &vop_bwrite_desc, (vop_t *) vn_bwrite },
194 { &vop_close_desc, (vop_t *) nfsspec_close },
195 { &vop_create_desc, (vop_t *) spec_create },
196 { &vop_fsync_desc, (vop_t *) nfs_fsync },
197 { &vop_getattr_desc, (vop_t *) nfs_getattr },
198 { &vop_inactive_desc, (vop_t *) nfs_inactive },
199 { &vop_ioctl_desc, (vop_t *) spec_ioctl },
200 { &vop_islocked_desc, (vop_t *) nfs_islocked },
201 { &vop_lease_desc, (vop_t *) spec_lease_check },
202 { &vop_link_desc, (vop_t *) spec_link },
203 { &vop_lock_desc, (vop_t *) nfs_lock },
204 { &vop_lookup_desc, (vop_t *) spec_lookup },
205 { &vop_mkdir_desc, (vop_t *) spec_mkdir },
206 { &vop_mknod_desc, (vop_t *) spec_mknod },
207 { &vop_mmap_desc, (vop_t *) spec_mmap },
208 { &vop_open_desc, (vop_t *) spec_open },
209 { &vop_pathconf_desc, (vop_t *) spec_pathconf },
210 { &vop_poll_desc, (vop_t *) spec_poll },
211 { &vop_print_desc, (vop_t *) nfs_print },
212 { &vop_read_desc, (vop_t *) nfsspec_read },
213 { &vop_readdir_desc, (vop_t *) spec_readdir },
214 { &vop_readlink_desc, (vop_t *) spec_readlink },
215 { &vop_reclaim_desc, (vop_t *) nfs_reclaim },
216 { &vop_remove_desc, (vop_t *) spec_remove },
217 { &vop_rename_desc, (vop_t *) spec_rename },
218 { &vop_revoke_desc, (vop_t *) spec_revoke },
219 { &vop_rmdir_desc, (vop_t *) spec_rmdir },
220 { &vop_seek_desc, (vop_t *) spec_seek },
221 { &vop_setattr_desc, (vop_t *) nfs_setattr },
222 { &vop_strategy_desc, (vop_t *) spec_strategy },
223 { &vop_symlink_desc, (vop_t *) spec_symlink },
224 { &vop_unlock_desc, (vop_t *) nfs_unlock },
225 { &vop_write_desc, (vop_t *) nfsspec_write },
226 { NULL, NULL }
227};
228static struct vnodeopv_desc spec_nfsv2nodeop_opv_desc =
229 { &spec_nfsv2nodeop_p, spec_nfsv2nodeop_entries };
230VNODEOP_SET(spec_nfsv2nodeop_opv_desc);
231
232vop_t **fifo_nfsv2nodeop_p;
233static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
234 { &vop_default_desc, (vop_t *) vn_default_error },
235 { &vop_abortop_desc, (vop_t *) fifo_abortop },
236 { &vop_access_desc, (vop_t *) nfsspec_access },
237 { &vop_advlock_desc, (vop_t *) fifo_advlock },
238 { &vop_bmap_desc, (vop_t *) fifo_bmap },
239 { &vop_bwrite_desc, (vop_t *) vn_bwrite },
240 { &vop_close_desc, (vop_t *) nfsfifo_close },
241 { &vop_create_desc, (vop_t *) fifo_create },
242 { &vop_fsync_desc, (vop_t *) nfs_fsync },
243 { &vop_getattr_desc, (vop_t *) nfs_getattr },
244 { &vop_inactive_desc, (vop_t *) nfs_inactive },
245 { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
246 { &vop_islocked_desc, (vop_t *) nfs_islocked },
247 { &vop_lease_desc, (vop_t *) fifo_lease_check },
248 { &vop_link_desc, (vop_t *) fifo_link },
249 { &vop_lock_desc, (vop_t *) nfs_lock },
250 { &vop_lookup_desc, (vop_t *) fifo_lookup },
251 { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
252 { &vop_mknod_desc, (vop_t *) fifo_mknod },
253 { &vop_mmap_desc, (vop_t *) fifo_mmap },
254 { &vop_open_desc, (vop_t *) fifo_open },
255 { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
256 { &vop_poll_desc, (vop_t *) fifo_poll },
257 { &vop_print_desc, (vop_t *) nfs_print },
258 { &vop_read_desc, (vop_t *) nfsfifo_read },
259 { &vop_readdir_desc, (vop_t *) fifo_readdir },
260 { &vop_readlink_desc, (vop_t *) fifo_readlink },
261 { &vop_reclaim_desc, (vop_t *) nfs_reclaim },
262 { &vop_remove_desc, (vop_t *) fifo_remove },
263 { &vop_rename_desc, (vop_t *) fifo_rename },
264 { &vop_revoke_desc, (vop_t *) fifo_revoke },
265 { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
266 { &vop_seek_desc, (vop_t *) fifo_seek },
267 { &vop_setattr_desc, (vop_t *) nfs_setattr },
268 { &vop_strategy_desc, (vop_t *) fifo_strategy },
269 { &vop_symlink_desc, (vop_t *) fifo_symlink },
270 { &vop_unlock_desc, (vop_t *) nfs_unlock },
271 { &vop_write_desc, (vop_t *) nfsfifo_write },
272 { NULL, NULL }
273};
274static struct vnodeopv_desc fifo_nfsv2nodeop_opv_desc =
275 { &fifo_nfsv2nodeop_p, fifo_nfsv2nodeop_entries };
276VNODEOP_SET(fifo_nfsv2nodeop_opv_desc);
277
278static int nfs_commit __P((struct vnode *vp, u_quad_t offset, int cnt,
279 struct ucred *cred, struct proc *procp));

--- 3096 unchanged lines hidden ---