Page MenuHomeFreeBSD

D19083.diff
No OneTemporary

D19083.diff

Index: head/sys/kern/vfs_extattr.c
===================================================================
--- head/sys/kern/vfs_extattr.c
+++ head/sys/kern/vfs_extattr.c
@@ -633,8 +633,6 @@
if (nbytes > IOSIZE_MAX)
return (EINVAL);
- vn_lock(vp, LK_SHARED | LK_RETRY);
-
auiop = NULL;
sizep = NULL;
cnt = 0;
@@ -653,24 +651,25 @@
} else
sizep = &size;
+ vn_lock(vp, LK_SHARED | LK_RETRY);
+
#ifdef MAC
error = mac_vnode_check_listextattr(td->td_ucred, vp, attrnamespace);
- if (error)
- goto done;
+ if (error) {
+ VOP_UNLOCK(vp, 0);
+ return (error);
+ }
#endif
error = VOP_LISTEXTATTR(vp, attrnamespace, auiop, sizep,
td->td_ucred, td);
+ VOP_UNLOCK(vp, 0);
if (auiop != NULL) {
cnt -= auio.uio_resid;
td->td_retval[0] = cnt;
} else
td->td_retval[0] = size;
-#ifdef MAC
-done:
-#endif
- VOP_UNLOCK(vp, 0);
return (error);
}

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 13, 2:40 AM (16 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15775314
Default Alt Text
D19083.diff (880 B)

Event Timeline