[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