[Glibc-bsd-commits] r3074 - in trunk/kfreebsd-8/debian: . patches

Petr Salinger ps-guest at alioth.debian.org
Mon Jul 26 09:32:42 UTC 2010


Author: ps-guest
Date: 2010-07-26 09:32:41 +0000 (Mon, 26 Jul 2010)
New Revision: 3074

Added:
   trunk/kfreebsd-8/debian/patches/000_ata.diff
   trunk/kfreebsd-8/debian/patches/000_ufs_lookup.diff
Modified:
   trunk/kfreebsd-8/debian/changelog
   trunk/kfreebsd-8/debian/patches/series
Log:
Include planned errata notices (already in 8-STABLE)
     - 000_ata.diff
     - 000_ufs_lookup.diff



Modified: trunk/kfreebsd-8/debian/changelog
===================================================================
--- trunk/kfreebsd-8/debian/changelog	2010-07-26 06:13:24 UTC (rev 3073)
+++ trunk/kfreebsd-8/debian/changelog	2010-07-26 09:32:41 UTC (rev 3074)
@@ -3,6 +3,9 @@
   [ Petr Salinger ]
   * New upstream version (RELENG_8_1_0_RELEASE)
      - 000_*.diff, 105_pts.diff merged upstream
+  * Include planned errata notices (already in 8-STABLE)
+     - 000_ata.diff
+     - 000_ufs_lookup.diff
 
   [ Guillem Jover ]
   * Use kfreebsd-any instead of explicit architecture list.

Added: trunk/kfreebsd-8/debian/patches/000_ata.diff
===================================================================
--- trunk/kfreebsd-8/debian/patches/000_ata.diff	                        (rev 0)
+++ trunk/kfreebsd-8/debian/patches/000_ata.diff	2010-07-26 09:32:41 UTC (rev 3074)
@@ -0,0 +1,16 @@
+A legacy device detection in the ata(4) can fail in some cases. 
+Specifically, Marvell 88SX6141 controllers can cause attach failure or panic. 
+This problem has been fixed in r210168 (HEAD). An Errata Notice for 8.1-RELEASE is planned.
+
+--- head/sys/dev/ata/ata-pci.c	2010/07/16 17:01:36	210167
++++ head/sys/dev/ata/ata-pci.c	2010/07/16 17:27:43	210168
+@@ -769,7 +769,8 @@
+ int
+ ata_legacy(device_t dev)
+ {
+-    return (((pci_read_config(dev, PCIR_PROGIF, 1)&PCIP_STORAGE_IDE_MASTERDEV)&&
++    return (((pci_read_config(dev, PCIR_SUBCLASS, 1) == PCIS_STORAGE_IDE) &&
++	     (pci_read_config(dev, PCIR_PROGIF, 1)&PCIP_STORAGE_IDE_MASTERDEV)&&
+ 	     ((pci_read_config(dev, PCIR_PROGIF, 1) &
+ 	       (PCIP_STORAGE_IDE_MODEPRIM | PCIP_STORAGE_IDE_MODESEC)) !=
+ 	      (PCIP_STORAGE_IDE_MODEPRIM | PCIP_STORAGE_IDE_MODESEC))) ||

Added: trunk/kfreebsd-8/debian/patches/000_ufs_lookup.diff
===================================================================
--- trunk/kfreebsd-8/debian/patches/000_ufs_lookup.diff	                        (rev 0)
+++ trunk/kfreebsd-8/debian/patches/000_ufs_lookup.diff	2010-07-26 09:32:41 UTC (rev 3074)
@@ -0,0 +1,52 @@
+A deadlock can occur in UFS with the QUOTA enabled due to a lock order reversal. 
+This problem has been fixed in r209367 (HEAD). An Errata Notice for 8.1-RELEASE is planned.
+
+--- a/sys/ufs/ufs/ufs_lookup.c
++++ b/sys/ufs/ufs/ufs_lookup.c
+@@ -80,6 +80,32 @@
+ static int ufs_lookup_(struct vnode *, struct vnode **, struct componentname *,
+     ino_t *);
+ 
++#ifdef QUOTA
++static int
++ufs_lookup_upgrade_lock(struct vnode *vp)
++{
++	int error;
++
++	ASSERT_VOP_LOCKED(vp, __FUNCTION__);
++	if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE)
++		return (0);
++
++	error = 0;
++
++	/*
++	 * Upgrade vnode lock, since getinoquota()
++	 * requires exclusive lock to modify inode.
++	 */
++	vhold(vp);
++	vn_lock(vp, LK_UPGRADE | LK_RETRY);
++	VI_LOCK(vp);
++	if (vp->v_iflag & VI_DOOMED)
++		error = ENOENT;
++	vdropl(vp);
++	return (error);
++}
++#endif
++
+ static int
+ ufs_delete_denied(struct vnode *vdp, struct vnode *tdp, struct ucred *cred,
+     struct thread *td)
+@@ -235,6 +261,13 @@
+ 	vnode_create_vobject(vdp, DIP(dp, i_size), cnp->cn_thread);
+ 
+ 	bmask = VFSTOUFS(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1;
++#ifdef QUOTA
++	if ((nameiop == DELETE || nameiop == RENAME) && (flags & ISLASTCN)) {
++		error = ufs_lookup_upgrade_lock(vdp);
++		if (error != 0)
++			return (error);
++	}
++#endif
+ 
+ restart:
+ 	bp = NULL;

Modified: trunk/kfreebsd-8/debian/patches/series
===================================================================
--- trunk/kfreebsd-8/debian/patches/series	2010-07-26 06:13:24 UTC (rev 3073)
+++ trunk/kfreebsd-8/debian/patches/series	2010-07-26 09:32:41 UTC (rev 3074)
@@ -1,3 +1,5 @@
+000_ata.diff
+000_ufs_lookup.diff  
 001_misc.diff
 003_glibc_dev_aicasm.diff
 004_xargs.diff




More information about the Glibc-bsd-commits mailing list