nfs_nfsdsocket.c (224080) | nfs_nfsdsocket.c (224081) |
---|---|
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 --- 18 unchanged lines hidden (view full) --- 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 */ 33 34#include <sys/cdefs.h> | 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 --- 18 unchanged lines hidden (view full) --- 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 */ 33 34#include <sys/cdefs.h> |
35__FBSDID("$FreeBSD: head/sys/fs/nfsserver/nfs_nfsdsocket.c 224080 2011-07-16 08:05:26Z zack $"); | 35__FBSDID("$FreeBSD: head/sys/fs/nfsserver/nfs_nfsdsocket.c 224081 2011-07-16 08:05:31Z zack $"); |
36 37/* 38 * Socket operations for use by the nfs server. 39 */ 40 41#ifndef APPLEKEXT 42#include <fs/nfs/nfsport.h> 43 --- 812 unchanged lines hidden (view full) --- 856 break; 857 } else if (cur_fsid.val[0] != save_fsid.val[0] || 858 cur_fsid.val[1] != save_fsid.val[1]) { 859 nd->nd_repstat = NFSERR_XDEV; 860 break; 861 } 862 if (nfsv4_opflag[op].modifyfs) 863 vn_start_write(savevp, &temp_mp, V_WAIT); | 36 37/* 38 * Socket operations for use by the nfs server. 39 */ 40 41#ifndef APPLEKEXT 42#include <fs/nfs/nfsport.h> 43 --- 812 unchanged lines hidden (view full) --- 856 break; 857 } else if (cur_fsid.val[0] != save_fsid.val[0] || 858 cur_fsid.val[1] != save_fsid.val[1]) { 859 nd->nd_repstat = NFSERR_XDEV; 860 break; 861 } 862 if (nfsv4_opflag[op].modifyfs) 863 vn_start_write(savevp, &temp_mp, V_WAIT); |
864 if (vn_lock(savevp, LK_EXCLUSIVE) == 0) { | 864 if (NFSVOPLOCK(savevp, LK_EXCLUSIVE) == 0) { |
865 VREF(vp); 866 VREF(savevp); 867 error = (*(nfsrv4_ops2[op]))(nd, isdgram, 868 savevp, vp, p, &savevpnes, &vpnes); 869 } else 870 nd->nd_repstat = NFSERR_PERM; 871 if (nfsv4_opflag[op].modifyfs) 872 vn_finished_write(temp_mp); 873 } else { 874 if (nfsv4_opflag[op].retfh != 0) 875 panic("nfsrvd_compound"); 876 if (nfsv4_opflag[op].needscfh) { 877 if (vp != NULL) { 878 if (nfsv4_opflag[op].modifyfs) 879 vn_start_write(vp, &temp_mp, 880 V_WAIT); | 865 VREF(vp); 866 VREF(savevp); 867 error = (*(nfsrv4_ops2[op]))(nd, isdgram, 868 savevp, vp, p, &savevpnes, &vpnes); 869 } else 870 nd->nd_repstat = NFSERR_PERM; 871 if (nfsv4_opflag[op].modifyfs) 872 vn_finished_write(temp_mp); 873 } else { 874 if (nfsv4_opflag[op].retfh != 0) 875 panic("nfsrvd_compound"); 876 if (nfsv4_opflag[op].needscfh) { 877 if (vp != NULL) { 878 if (nfsv4_opflag[op].modifyfs) 879 vn_start_write(vp, &temp_mp, 880 V_WAIT); |
881 if (vn_lock(vp, nfsv4_opflag[op].lktype) | 881 if (NFSVOPLOCK(vp, nfsv4_opflag[op].lktype) |
882 == 0) 883 VREF(vp); 884 else 885 nd->nd_repstat = NFSERR_PERM; 886 } else { 887 nd->nd_repstat = NFSERR_NOFILEHANDLE; 888 if (op == NFSV4OP_SETATTR) { 889 /* --- 60 unchanged lines hidden --- | 882 == 0) 883 VREF(vp); 884 else 885 nd->nd_repstat = NFSERR_PERM; 886 } else { 887 nd->nd_repstat = NFSERR_NOFILEHANDLE; 888 if (op == NFSV4OP_SETATTR) { 889 /* --- 60 unchanged lines hidden --- |