summaryrefslogtreecommitdiff
path: root/sys/miscfs/fuse
diff options
context:
space:
mode:
Diffstat (limited to 'sys/miscfs/fuse')
-rw-r--r--sys/miscfs/fuse/fuse_lookup.c10
-rw-r--r--sys/miscfs/fuse/fuse_vnops.c25
-rw-r--r--sys/miscfs/fuse/fusefs.h3
3 files changed, 11 insertions, 27 deletions
diff --git a/sys/miscfs/fuse/fuse_lookup.c b/sys/miscfs/fuse/fuse_lookup.c
index ca93c59d186..a0d2fc49aa6 100644
--- a/sys/miscfs/fuse/fuse_lookup.c
+++ b/sys/miscfs/fuse/fuse_lookup.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fuse_lookup.c,v 1.13 2016/08/16 21:32:58 natano Exp $ */
+/* $OpenBSD: fuse_lookup.c,v 1.14 2016/08/21 09:23:33 natano Exp $ */
/*
* Copyright (c) 2012-2013 Sylvestre Gallon <ccna.syl@gmail.com>
*
@@ -174,15 +174,11 @@ fusefs_lookup(void *v)
error = 0;
} else {
error = VFS_VGET(fmp->mp, nid, &tdp);
-
- if (!error)
- tdp->v_type = IFTOVT(fbuf->fb_vattr.va_mode);
-
- update_vattr(fmp->mp, &fbuf->fb_vattr);
-
if (error)
goto out;
+ tdp->v_type = IFTOVT(fbuf->fb_vattr.va_mode);
+
if (vdp != NULL && vdp->v_type == VDIR)
VTOI(tdp)->parent = dp->ufs_ino.i_number;
diff --git a/sys/miscfs/fuse/fuse_vnops.c b/sys/miscfs/fuse/fuse_vnops.c
index c73c2e797fe..496729bb9a9 100644
--- a/sys/miscfs/fuse/fuse_vnops.c
+++ b/sys/miscfs/fuse/fuse_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fuse_vnops.c,v 1.30 2016/08/16 21:32:58 natano Exp $ */
+/* $OpenBSD: fuse_vnops.c,v 1.31 2016/08/21 09:23:33 natano Exp $ */
/*
* Copyright (c) 2012-2013 Sylvestre Gallon <ccna.syl@gmail.com>
*
@@ -203,19 +203,6 @@ filt_fusefsvnode(struct knote *kn, long int hint)
return (kn->kn_fflags != 0);
}
-void
-update_vattr(struct mount *mp, struct vattr *v)
-{
- v->va_fsid = mp->mnt_stat.f_fsid.val[0];
- v->va_type = IFTOVT(v->va_mode);
-#if (S_BLKSIZE == 512)
- v->va_bytes = v->va_bytes << 9;
-#else
- v->va_bytes = v->va_bytes * S_BLKSIZE;
-#endif
- v->va_mode = v->va_mode & ~S_IFMT;
-}
-
int
fusefs_open(void *v)
{
@@ -401,8 +388,13 @@ fusefs_getattr(void *v)
return (error);
}
- update_vattr(fmp->mp, &fbuf->fb_vattr);
memcpy(vap, &fbuf->fb_vattr, sizeof(*vap));
+
+ vap->va_fsid = fmp->mp->mnt_stat.f_fsid.val[0];
+ vap->va_type = IFTOVT(vap->va_mode);
+ vap->va_bytes *= S_BLKSIZE;
+ vap->va_mode &= ~S_IFMT;
+
fb_delete(fbuf);
return (error);
}
@@ -518,15 +510,12 @@ fusefs_setattr(void *v)
}
error = fb_queue(fmp->dev, fbuf);
-
if (error) {
if (error == ENOSYS)
fmp->undef_op |= UNDEF_SETATTR;
goto out;
}
- update_vattr(fmp->mp, &fbuf->fb_vattr);
- memcpy(vap, &fbuf->fb_vattr, sizeof(*vap));
VN_KNOTE(ap->a_vp, NOTE_ATTRIB);
out:
diff --git a/sys/miscfs/fuse/fusefs.h b/sys/miscfs/fuse/fusefs.h
index 5b7027cbb00..2b96e3c168a 100644
--- a/sys/miscfs/fuse/fusefs.h
+++ b/sys/miscfs/fuse/fusefs.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: fusefs.h,v 1.7 2014/05/20 13:32:22 syl Exp $ */
+/* $OpenBSD: fusefs.h,v 1.8 2016/08/21 09:23:33 natano Exp $ */
/*
* Copyright (c) 2012-2013 Sylvestre Gallon <ccna.syl@gmail.com>
*
@@ -72,7 +72,6 @@ extern struct pool fusefs_fbuf_pool;
/* fuse helpers */
#define TSLEEP_TIMEOUT 5
-void update_vattr(struct mount *mp, struct vattr *v);
/* files helpers. */
int fusefs_file_open(struct fusefs_mnt *, struct fusefs_node *, enum fufh_type,