summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2008-09-20 19:50:52 +0000
committerkib <kib@FreeBSD.org>2008-09-20 19:50:52 +0000
commita127656dea4eaa9f2125b73268a5749b25cbbbbd (patch)
tree115bb5b75428770843d9c2637d376cde0d96084e /sys/fs
parentef4f1dc9c70af87320df47334a3d15a86cad6994 (diff)
downloadFreeBSD-src-a127656dea4eaa9f2125b73268a5749b25cbbbbd.zip
FreeBSD-src-a127656dea4eaa9f2125b73268a5749b25cbbbbd.tar.gz
fdescfs, devfs, mqueuefs, nfs, portalfs, pseudofs, tmpfs and xfs
initialize the vattr structure in VOP_GETATTR() with VATTR_NULL(), vattr_null() or by zeroing it. Remove these to allow preinitialization of fields work in vn_stat(). This is needed to get birthtime initialized correctly. Submitted by: Jaakko Heinonen <jh saunalahti fi> Discussed on: freebsd-fs MFC after: 1 month
Diffstat (limited to 'sys/fs')
-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
5 files changed, 6 insertions, 10 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index d56e99b..94ea0dd 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 bf04120..8e914dc 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 22e36d2..51b279d 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 48c45c9..4cbbc22 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 fb84319..8365b97 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;
OpenPOWER on IntegriCloud