smbfs_vnops.c (586ee69f09c5060621486b34722a4a806581f93d) | smbfs_vnops.c (b4a58fbf640409a1e507d9f7b411c83a3f83a2f3) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000-2001 Boris Popov 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 546 unchanged lines hidden (view full) --- 555 556 SMBVDEBUG("\n"); 557 *vpp = NULL; 558 if (vap->va_type != VREG) 559 return EOPNOTSUPP; 560 if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred))) 561 return error; 562 scred = smbfs_malloc_scred(); | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2000-2001 Boris Popov 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 546 unchanged lines hidden (view full) --- 555 556 SMBVDEBUG("\n"); 557 *vpp = NULL; 558 if (vap->va_type != VREG) 559 return EOPNOTSUPP; 560 if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred))) 561 return error; 562 scred = smbfs_malloc_scred(); |
563 smb_makescred(scred, cnp->cn_thread, cnp->cn_cred); | 563 smb_makescred(scred, curthread, cnp->cn_cred); |
564 565 error = smbfs_smb_create(dnp, name, nmlen, scred); 566 if (error) 567 goto out; 568 error = smbfs_smb_lookup(dnp, name, nmlen, &fattr, scred); 569 if (error) 570 goto out; 571 error = smbfs_nget(VTOVFS(dvp), dvp, name, nmlen, &fattr, &vp); --- 21 unchanged lines hidden (view full) --- 593 struct componentname *cnp = ap->a_cnp; 594 struct smbnode *np = VTOSMB(vp); 595 struct smb_cred *scred; 596 int error; 597 598 if (vp->v_type == VDIR || (np->n_flag & NOPEN) != 0 || vrefcnt(vp) != 1) 599 return EPERM; 600 scred = smbfs_malloc_scred(); | 564 565 error = smbfs_smb_create(dnp, name, nmlen, scred); 566 if (error) 567 goto out; 568 error = smbfs_smb_lookup(dnp, name, nmlen, &fattr, scred); 569 if (error) 570 goto out; 571 error = smbfs_nget(VTOVFS(dvp), dvp, name, nmlen, &fattr, &vp); --- 21 unchanged lines hidden (view full) --- 593 struct componentname *cnp = ap->a_cnp; 594 struct smbnode *np = VTOSMB(vp); 595 struct smb_cred *scred; 596 int error; 597 598 if (vp->v_type == VDIR || (np->n_flag & NOPEN) != 0 || vrefcnt(vp) != 1) 599 return EPERM; 600 scred = smbfs_malloc_scred(); |
601 smb_makescred(scred, cnp->cn_thread, cnp->cn_cred); | 601 smb_makescred(scred, curthread, cnp->cn_cred); |
602 error = smbfs_smb_delete(np, scred); 603 if (error == 0) 604 np->n_flag |= NGONE; 605 cache_purge(vp); 606 smbfs_free_scred(scred); 607 return error; 608} 609 --- 37 unchanged lines hidden (view full) --- 647 if (fvp->v_type == VDIR) { 648 flags |= 2; 649 } else if (fvp->v_type == VREG) { 650 flags |= 1; 651 } else { 652 return EINVAL; 653 } 654 scred = smbfs_malloc_scred(); | 602 error = smbfs_smb_delete(np, scred); 603 if (error == 0) 604 np->n_flag |= NGONE; 605 cache_purge(vp); 606 smbfs_free_scred(scred); 607 return error; 608} 609 --- 37 unchanged lines hidden (view full) --- 647 if (fvp->v_type == VDIR) { 648 flags |= 2; 649 } else if (fvp->v_type == VREG) { 650 flags |= 1; 651 } else { 652 return EINVAL; 653 } 654 scred = smbfs_malloc_scred(); |
655 smb_makescred(scred, tcnp->cn_thread, tcnp->cn_cred); | 655 smb_makescred(scred, curthread, tcnp->cn_cred); |
656 /* 657 * It seems that Samba doesn't implement SMB_COM_MOVE call... 658 */ 659#ifdef notnow 660 if (SMB_DIALECT(SSTOCN(smp->sm_share)) >= SMB_DIALECT_LANMAN1_0) { 661 error = smbfs_smb_move(VTOSMB(fvp), VTOSMB(tdvp), 662 tcnp->cn_nameptr, tcnp->cn_namelen, flags, scred); 663 } else --- 100 unchanged lines hidden (view full) --- 764 int error; 765 766 if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred))) { 767 return error; 768 } 769 if ((name[0] == '.') && ((len == 1) || ((len == 2) && (name[1] == '.')))) 770 return EEXIST; 771 scred = smbfs_malloc_scred(); | 656 /* 657 * It seems that Samba doesn't implement SMB_COM_MOVE call... 658 */ 659#ifdef notnow 660 if (SMB_DIALECT(SSTOCN(smp->sm_share)) >= SMB_DIALECT_LANMAN1_0) { 661 error = smbfs_smb_move(VTOSMB(fvp), VTOSMB(tdvp), 662 tcnp->cn_nameptr, tcnp->cn_namelen, flags, scred); 663 } else --- 100 unchanged lines hidden (view full) --- 764 int error; 765 766 if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred))) { 767 return error; 768 } 769 if ((name[0] == '.') && ((len == 1) || ((len == 2) && (name[1] == '.')))) 770 return EEXIST; 771 scred = smbfs_malloc_scred(); |
772 smb_makescred(scred, cnp->cn_thread, cnp->cn_cred); | 772 smb_makescred(scred, curthread, cnp->cn_cred); |
773 error = smbfs_smb_mkdir(dnp, name, len, scred); 774 if (error) 775 goto out; 776 error = smbfs_smb_lookup(dnp, name, len, &fattr, scred); 777 if (error) 778 goto out; 779 error = smbfs_nget(VTOVFS(dvp), dvp, name, len, &fattr, &vp); 780 if (error) --- 23 unchanged lines hidden (view full) --- 804 struct smbnode *np = VTOSMB(vp); 805 struct smb_cred *scred; 806 int error; 807 808 if (dvp == vp) 809 return EINVAL; 810 811 scred = smbfs_malloc_scred(); | 773 error = smbfs_smb_mkdir(dnp, name, len, scred); 774 if (error) 775 goto out; 776 error = smbfs_smb_lookup(dnp, name, len, &fattr, scred); 777 if (error) 778 goto out; 779 error = smbfs_nget(VTOVFS(dvp), dvp, name, len, &fattr, &vp); 780 if (error) --- 23 unchanged lines hidden (view full) --- 804 struct smbnode *np = VTOSMB(vp); 805 struct smb_cred *scred; 806 int error; 807 808 if (dvp == vp) 809 return EINVAL; 810 811 scred = smbfs_malloc_scred(); |
812 smb_makescred(scred, cnp->cn_thread, cnp->cn_cred); | 812 smb_makescred(scred, curthread, cnp->cn_cred); |
813 error = smbfs_smb_rmdir(np, scred); 814 if (error == 0) 815 np->n_flag |= NGONE; 816 dnp->n_flag |= NMODIFIED; 817 smbfs_attr_cacheremove(dvp); 818/* cache_purge(dvp);*/ 819 cache_purge(vp); 820 smbfs_free_scred(scred); --- 344 unchanged lines hidden (view full) --- 1165 struct vop_lookup_args /* { 1166 struct vnodeop_desc *a_desc; 1167 struct vnode *a_dvp; 1168 struct vnode **a_vpp; 1169 struct componentname *a_cnp; 1170 } */ *ap; 1171{ 1172 struct componentname *cnp = ap->a_cnp; | 813 error = smbfs_smb_rmdir(np, scred); 814 if (error == 0) 815 np->n_flag |= NGONE; 816 dnp->n_flag |= NMODIFIED; 817 smbfs_attr_cacheremove(dvp); 818/* cache_purge(dvp);*/ 819 cache_purge(vp); 820 smbfs_free_scred(scred); --- 344 unchanged lines hidden (view full) --- 1165 struct vop_lookup_args /* { 1166 struct vnodeop_desc *a_desc; 1167 struct vnode *a_dvp; 1168 struct vnode **a_vpp; 1169 struct componentname *a_cnp; 1170 } */ *ap; 1171{ 1172 struct componentname *cnp = ap->a_cnp; |
1173 struct thread *td = cnp->cn_thread; | 1173 struct thread *td = curthread; |
1174 struct vnode *dvp = ap->a_dvp; 1175 struct vnode **vpp = ap->a_vpp; 1176 struct vnode *vp; 1177 struct smbmount *smp; 1178 struct mount *mp = dvp->v_mount; 1179 struct smbnode *dnp; 1180 struct smbfattr fattr, *fap; 1181 struct smb_cred *scred; --- 201 unchanged lines hidden --- | 1174 struct vnode *dvp = ap->a_dvp; 1175 struct vnode **vpp = ap->a_vpp; 1176 struct vnode *vp; 1177 struct smbmount *smp; 1178 struct mount *mp = dvp->v_mount; 1179 struct smbnode *dnp; 1180 struct smbfattr fattr, *fap; 1181 struct smb_cred *scred; --- 201 unchanged lines hidden --- |