changeset 12886:4e09ded00759

6855379 kcfd can't validate libraries from dcfs
author John.Zolnowsky@Sun.COM
date Tue, 20 Jul 2010 12:46:19 -0700
parents f838b80bfd58
children d6271820a7fb
files usr/src/uts/common/fs/dcfs/dc_vnops.c
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/dcfs/dc_vnops.c	Tue Jul 20 16:00:05 2010 +0100
+++ b/usr/src/uts/common/fs/dcfs/dc_vnops.c	Tue Jul 20 12:46:19 2010 -0700
@@ -395,11 +395,16 @@
     cred_t *cr, caller_context_t *ctp)
 {
 	struct dcnode *dp = VTODC(vp);
+	int error;
+	struct vattr vattr;
 
 	/*
 	 * If file is being mapped, disallow frlock.
 	 */
-	if (dp->dc_mapcnt > 0)
+	vattr.va_mask = AT_MODE;
+	if (error = VOP_GETATTR(dp->dc_subvp, &vattr, 0, cr, ctp))
+		return (error);
+	if (dp->dc_mapcnt > 0 && MANDLOCK(vp, vattr.va_mode))
 		return (EAGAIN);
 
 	return (fs_frlock(vp, cmd, bfp, flag, offset, flk_cbp, cr, ctp));