aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/fs/devfs/devfs_vnops.c3
-rw-r--r--sys/fs/fdescfs/fdesc_vnops.c6
-rw-r--r--sys/fs/portalfs/portal_vnops.c3
-rw-r--r--sys/fs/pseudofs/pseudofs_vnops.c2
-rw-r--r--sys/fs/tmpfs/tmpfs_vnops.c2
-rw-r--r--sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c1
-rw-r--r--sys/kern/uipc_mqueue.c1
-rw-r--r--sys/nfsclient/nfs_vnops.c26
8 files changed, 29 insertions, 15 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index d56e99b20f57..94ea0dd6bfd3 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -499,8 +499,6 @@ devfs_getattr(struct vop_getattr_args *ap)
KASSERT(de != NULL,
("Null dir dirent in devfs_getattr vp=%p", vp));
}
- bzero((caddr_t) vap, sizeof(*vap));
- vattr_null(vap);
vap->va_uid = de->de_uid;
vap->va_gid = de->de_gid;
vap->va_mode = de->de_mode;
@@ -543,6 +541,7 @@ devfs_getattr(struct vop_getattr_args *ap)
}
vap->va_gen = 0;
vap->va_flags = 0;
+ vap->va_filerev = 0;
vap->va_nlink = de->de_links;
vap->va_fileid = de->de_inode;
diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c
index bf04120d2997..8e914dc5e13a 100644
--- a/sys/fs/fdescfs/fdesc_vnops.c
+++ b/sys/fs/fdescfs/fdesc_vnops.c
@@ -391,8 +391,6 @@ fdesc_getattr(ap)
switch (VTOFDESC(vp)->fd_type) {
case Froot:
- VATTR_NULL(vap);
-
vap->va_mode = S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH;
vap->va_type = VDIR;
vap->va_nlink = 2;
@@ -409,6 +407,7 @@ fdesc_getattr(ap)
vap->va_flags = 0;
vap->va_rdev = NODEV;
vap->va_bytes = 0;
+ vap->va_filerev = 0;
break;
case Fdesc:
@@ -421,7 +420,6 @@ fdesc_getattr(ap)
error = fo_stat(fp, &stb, td->td_ucred, td);
fdrop(fp, td);
if (error == 0) {
- VATTR_NULL(vap);
vap->va_type = IFTOVT(stb.st_mode);
vap->va_mode = stb.st_mode;
#define FDRX (VREAD|VEXEC)
@@ -456,6 +454,8 @@ fdesc_getattr(ap)
vap->va_ctime = stb.st_ctimespec;
vap->va_uid = stb.st_uid;
vap->va_gid = stb.st_gid;
+ vap->va_gen = 0;
+ vap->va_filerev = 0;
}
break;
diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c
index 22e36d2d3a64..51b279daa1af 100644
--- a/sys/fs/portalfs/portal_vnops.c
+++ b/sys/fs/portalfs/portal_vnops.c
@@ -452,8 +452,6 @@ portal_getattr(ap)
struct vnode *vp = ap->a_vp;
struct vattr *vap = ap->a_vap;
- bzero(vap, sizeof(*vap));
- vattr_null(vap);
vap->va_uid = 0;
vap->va_gid = 0;
vap->va_size = DEV_BSIZE;
@@ -466,6 +464,7 @@ portal_getattr(ap)
vap->va_rdev = NODEV;
/* vap->va_qbytes = 0; */
vap->va_bytes = 0;
+ vap->va_filerev = 0;
/* vap->va_qsize = 0; */
if (vp->v_vflag & VV_ROOT) {
vap->va_type = VDIR;
diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c
index 48c45c93caa3..4cbbc225d609 100644
--- a/sys/fs/pseudofs/pseudofs_vnops.c
+++ b/sys/fs/pseudofs/pseudofs_vnops.c
@@ -191,12 +191,12 @@ pfs_getattr(struct vop_getattr_args *va)
if (!pfs_visible(curthread, pn, pvd->pvd_pid, &proc))
PFS_RETURN (ENOENT);
- VATTR_NULL(vap);
vap->va_type = vn->v_type;
vap->va_fileid = pn_fileno(pn, pvd->pvd_pid);
vap->va_flags = 0;
vap->va_blocksize = PAGE_SIZE;
vap->va_bytes = vap->va_size = 0;
+ vap->va_filerev = 0;
vap->va_fsid = vn->v_mount->mnt_stat.f_fsid.val[0];
vap->va_nlink = 1;
nanotime(&vap->va_ctime);
diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c
index fb84319e5dbd..8365b975eaa8 100644
--- a/sys/fs/tmpfs/tmpfs_vnops.c
+++ b/sys/fs/tmpfs/tmpfs_vnops.c
@@ -344,8 +344,6 @@ tmpfs_getattr(struct vop_getattr_args *v)
node = VP_TO_TMPFS_NODE(vp);
- VATTR_NULL(vap);
-
tmpfs_update(vp);
vap->va_type = vp->v_type;
diff --git a/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c b/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c
index 0ef2e91ab65d..8296552f3e85 100644
--- a/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c
+++ b/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c
@@ -240,7 +240,6 @@ _xfs_getattr(
/* extract the xfs vnode from the private data */
//xfs_vnode_t *xvp = (xfs_vnode_t *)vp->v_data;
- VATTR_NULL(vap);
memset(&va,0,sizeof(xfs_vattr_t));
va.va_mask = XFS_AT_STAT|XFS_AT_GENCOUNT|XFS_AT_XFLAGS;
diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c
index 58e133da5f30..aa362cb8a3ca 100644
--- a/sys/kern/uipc_mqueue.c
+++ b/sys/kern/uipc_mqueue.c
@@ -1164,7 +1164,6 @@ mqfs_getattr(struct vop_getattr_args *ap)
struct vattr *vap = ap->a_vap;
int error = 0;
- VATTR_NULL(vap);
vap->va_type = vp->v_type;
vap->va_mode = pn->mn_mode;
vap->va_nlink = 1;
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c
index 91bc27fbc85b..04b3b34f107f 100644
--- a/sys/nfsclient/nfs_vnops.c
+++ b/sys/nfsclient/nfs_vnops.c
@@ -631,6 +631,8 @@ nfs_getattr(struct vop_getattr_args *ap)
struct vnode *vp = ap->a_vp;
struct nfsnode *np = VTONFS(vp);
struct thread *td = curthread;
+ struct vattr *vap = ap->a_vap;
+ struct vattr vattr;
caddr_t bpos, dpos;
int error = 0;
struct mbuf *mreq, *mrep, *md, *mb;
@@ -646,12 +648,12 @@ nfs_getattr(struct vop_getattr_args *ap)
/*
* First look in the cache.
*/
- if (nfs_getattrcache(vp, ap->a_vap) == 0)
+ if (nfs_getattrcache(vp, &vattr) == 0)
goto nfsmout;
if (v3 && nfsaccess_cache_timeout > 0) {
nfsstats.accesscache_misses++;
nfs3_access_otw(vp, NFSV3ACCESS_ALL, td, ap->a_cred);
- if (nfs_getattrcache(vp, ap->a_vap) == 0)
+ if (nfs_getattrcache(vp, &vattr) == 0)
goto nfsmout;
}
nfsstats.rpccnt[NFSPROC_GETATTR]++;
@@ -661,10 +663,28 @@ nfs_getattr(struct vop_getattr_args *ap)
nfsm_fhtom(vp, v3);
nfsm_request(vp, NFSPROC_GETATTR, td, ap->a_cred);
if (!error) {
- nfsm_loadattr(vp, ap->a_vap);
+ nfsm_loadattr(vp, &vattr);
}
m_freem(mrep);
nfsmout:
+ vap->va_type = vattr.va_type;
+ vap->va_mode = vattr.va_mode;
+ vap->va_nlink = vattr.va_nlink;
+ vap->va_uid = vattr.va_uid;
+ vap->va_gid = vattr.va_gid;
+ vap->va_fsid = vattr.va_fsid;
+ vap->va_fileid = vattr.va_fileid;
+ vap->va_size = vattr.va_size;
+ vap->va_blocksize = vattr.va_blocksize;
+ vap->va_atime = vattr.va_atime;
+ vap->va_mtime = vattr.va_mtime;
+ vap->va_ctime = vattr.va_ctime;
+ vap->va_gen = vattr.va_gen;
+ vap->va_flags = vattr.va_flags;
+ vap->va_rdev = vattr.va_rdev;
+ vap->va_bytes = vattr.va_bytes;
+ vap->va_filerev = vattr.va_filerev;
+
return (error);
}