svn commit: r199495 - user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Kip Macy kmacy at FreeBSD.org
Wed Nov 18 22:31:11 UTC 2009


Author: kmacy
Date: Wed Nov 18 22:31:10 2009
New Revision: 199495
URL: http://svn.freebsd.org/changeset/base/199495

Log:
  only cache new buffer if the buffer is valid and the I/O succeded

Modified:
  user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c

Modified: user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Nov 18 22:14:36 2009	(r199494)
+++ user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Nov 18 22:31:10 2009	(r199495)
@@ -188,6 +188,7 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, mdcomp_di
     &zfs_mdcomp_disable, 0, "Disable metadata compression");
 
 static int zfs_page_cache_disable = 0;
+TUNABLE_INT("vfs.zfs.page_cache_disable", &zfs_page_cache_disable);
 SYSCTL_INT(_vfs_zfs, OID_AUTO, page_cache_disable, CTLFLAG_RDTUN,
     &zfs_page_cache_disable, 0, "Disable backing ARC with page cache ");
 
@@ -1343,9 +1344,8 @@ arc_bgetvp(arc_buf_t *buf)
 				BO_UNLOCK(bo);
 			}
 		} 
-	} else {
-		newbp->b_flags |= B_CACHE;
-		newbp->b_flags &= ~B_INVAL;
+	} else 	if (!(hdr->b_flags & ARC_IO_ERROR) &&
+	    (newbp->b_flags & (B_INVAL|B_CACHE)) == B_CACHE) {
 		bgetvp(vp, newbp);
 		BO_UNLOCK(bo);
 	}


More information about the svn-src-user mailing list