summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2001-01-07 23:31:51 +0000
committerrwatson <rwatson@FreeBSD.org>2001-01-07 23:31:51 +0000
commit34031fcb8d885dd05f6018d9829bbb6bf223d764 (patch)
tree0f3b5de1368573f9d0562f6df8606a392d457a66 /sys/ufs
parentd0fa22cb5d8a8da1477b47ea97cbe7053b7b9842 (diff)
downloadFreeBSD-src-34031fcb8d885dd05f6018d9829bbb6bf223d764.zip
FreeBSD-src-34031fcb8d885dd05f6018d9829bbb6bf223d764.tar.gz
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
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ufs/ufs_extattr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/ufs/ufs/ufs_extattr.c b/sys/ufs/ufs/ufs_extattr.c
index 7d06bfb..1bb5a69 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);
OpenPOWER on IntegriCloud