summaryrefslogtreecommitdiffstats
path: root/sys/fs/smbfs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/smbfs')
-rw-r--r--sys/fs/smbfs/smbfs_io.c7
-rw-r--r--sys/fs/smbfs/smbfs_node.c3
-rw-r--r--sys/fs/smbfs/smbfs_vfsops.c3
-rw-r--r--sys/fs/smbfs/smbfs_vnops.c6
4 files changed, 13 insertions, 6 deletions
diff --git a/sys/fs/smbfs/smbfs_io.c b/sys/fs/smbfs/smbfs_io.c
index ebb0934..1baa384 100644
--- a/sys/fs/smbfs/smbfs_io.c
+++ b/sys/fs/smbfs/smbfs_io.c
@@ -671,8 +671,13 @@ smbfs_vinvalbuf(vp, flags, cred, td, intrflg)
struct smbnode *np = VTOSMB(vp);
int error = 0, slpflag, slptimeo;
- if (vp->v_flag & VXLOCK)
+ VI_LOCK(vp);
+ if (vp->v_iflag & VI_XLOCK) {
+ VI_UNLOCK(vp);
return 0;
+ }
+ VI_UNLOCK(vp);
+
if (intrflg) {
slpflag = PCATCH;
slptimeo = 2 * hz;
diff --git a/sys/fs/smbfs/smbfs_node.c b/sys/fs/smbfs/smbfs_node.c
index 8dabd00..4e79f78 100644
--- a/sys/fs/smbfs/smbfs_node.c
+++ b/sys/fs/smbfs/smbfs_node.c
@@ -235,8 +235,9 @@ loop:
np->n_ino = fap->fa_ino;
if (dvp) {
+ ASSERT_VOP_LOCKED(dvp, "smbfs_node_alloc");
np->n_parent = dnp;
- if (/*vp->v_type == VDIR &&*/ (dvp->v_flag & VROOT) == 0) {
+ if (/*vp->v_type == VDIR &&*/ (dvp->v_vflag & VV_ROOT) == 0) {
vref(dvp);
np->n_flag |= NREFPARENT;
}
diff --git a/sys/fs/smbfs/smbfs_vfsops.c b/sys/fs/smbfs/smbfs_vfsops.c
index 5edff3f..2c847c3 100644
--- a/sys/fs/smbfs/smbfs_vfsops.c
+++ b/sys/fs/smbfs/smbfs_vfsops.c
@@ -293,7 +293,8 @@ smbfs_root(struct mount *mp, struct vnode **vpp)
error = smbfs_nget(mp, NULL, "TheRooT", 7, &fattr, &vp);
if (error)
return error;
- vp->v_flag |= VROOT;
+ ASSERT_VOP_LOCKED(vp, "smbfs_root");
+ vp->v_vflag |= VV_ROOT;
np = VTOSMB(vp);
smp->sm_root = np;
*vpp = vp;
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c
index b471486..219afbf 100644
--- a/sys/fs/smbfs/smbfs_vnops.c
+++ b/sys/fs/smbfs/smbfs_vnops.c
@@ -293,7 +293,7 @@ smbfs_close(ap)
int error, dolock;
VI_LOCK(vp);
- dolock = (vp->v_flag & VXLOCK) == 0;
+ dolock = (vp->v_iflag & VI_XLOCK) == 0;
if (dolock)
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY | LK_INTERLOCK, td);
else
@@ -324,7 +324,7 @@ smbfs_getattr(ap)
u_int32_t oldsize;
int error;
- SMBVDEBUG("%lx: '%s' %d\n", (long)vp, np->n_name, (vp->v_flag & VROOT) != 0);
+ SMBVDEBUG("%lx: '%s' %d\n", (long)vp, np->n_name, (vp->v_vflag & VV_ROOT) != 0);
error = smbfs_attr_cachelookup(vp, va);
if (!error)
return 0;
@@ -1135,7 +1135,7 @@ smbfs_lookup(ap)
cnp->cn_flags &= ~PDIRUNLOCK;
if (dvp->v_type != VDIR)
return ENOTDIR;
- if ((flags & ISDOTDOT) && (dvp->v_flag & VROOT)) {
+ if ((flags & ISDOTDOT) && (dvp->v_vflag & VV_ROOT)) {
SMBFSERR("invalid '..'\n");
return EIO;
}
OpenPOWER on IntegriCloud