From 4301368e49aed104da5c0ca76fb9022192eff641 Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Sun, 7 Jan 2001 23:31:51 +0000 Subject: [PATCH] o Zero the ufs_extattr_header length field (not necessary, but not a bad idea either) in ufs_extattr_rm. o More completely fill out the local_aio structure when writing out the zero'd extended attribute in ufs_extattr_rm -- previoulsy, this worked fine, but probably should not have. This corrects extraneous warnings about inconsistent inodes following file deletion. Reviewed by: jedgar --- sys/ufs/ufs/ufs_extattr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/ufs/ufs/ufs_extattr.c b/sys/ufs/ufs/ufs_extattr.c index 7d06bfbf9af..1bb5a699d40 100644 --- a/sys/ufs/ufs/ufs_extattr.c +++ b/sys/ufs/ufs/ufs_extattr.c @@ -845,10 +845,17 @@ ufs_extattr_rm(struct vnode *vp, const char *name, struct ucred *cred, /* flag it as not in use */ ueh.ueh_flags = 0; + ueh.ueh_len = 0; + local_aiov.iov_base = (caddr_t) &ueh; + local_aiov.iov_len = sizeof(struct ufs_extattr_header); + local_aio.uio_iov = &local_aiov; + local_aio.uio_iovcnt = 1; + local_aio.uio_rw = UIO_WRITE; + local_aio.uio_segflg = UIO_SYSSPACE; + local_aio.uio_procp = p; local_aio.uio_offset = base_offset; local_aio.uio_resid = sizeof(struct ufs_extattr_header); - local_aio.uio_rw = UIO_WRITE; error = VOP_WRITE(attribute->uele_backing_vnode, &local_aio, IO_NODELOCKED | IO_SYNC, ump->um_extattr.uepm_ucred);