Date: Tue, 3 Sep 2013 10:02:25 -0400 From: Mark Saad <nonesuch@longcount.org> To: Kirk McKusick <mckusick@FreeBSD.org> Cc: freebsd-stable@freebsd.org Subject: Re: svn commit: r255104 - stable/9/sys/ufs/ufs Message-ID: <B7F5CBE2-11CC-4194-8C11-A347074BA16A@longcount.org> In-Reply-To: <201308311738.r7VHcnRR021632@svn.freebsd.org> References: <201308311738.r7VHcnRR021632@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Kirk Will this be merged into 9.2-RC? Before the Release ? =20 --- Mark saad | mark.saad@longcount.org On Aug 31, 2013, at 1:38 PM, Kirk McKusick <mckusick@FreeBSD.org> wrote: > Author: mckusick > Date: Sat Aug 31 17:38:49 2013 > New Revision: 255104 > URL: http://svnweb.freebsd.org/changeset/base/255104 >=20 > Log: > MFC of 253998: >=20 > This bug fix is in a code path in rename taken when there is a > collision between a rename and an open system call for the same > target file. Here, rename releases its vnode references, waits for > the open to finish, and then restarts by reacquiring its needed > vnode locks. In this case, rename was unlocking but failing to > release its reference to one of its held vnodes. The effect was > that even after all the actual references to the vnode had gone, > the vnode still showed active references. For files that had been > removed, their space was not reclaimed until the filesystem was > forcibly unmounted. >=20 > This bug manifested itself in the Postgres server which would > leak/lose hundreds of files per day amounting to many gigabytes of > disk space. This bug required shutting down Postgres, forcibly > unmounting its filesystem, remounting its filesystem and restarting > Postgres every few days to recover the lost space. >=20 > Reported by: Dan Thomas and Palle Girgensohn > Bug-fix by: kib > Tested by: Dan Thomas and Palle Girgensohn >=20 > Modified: > stable/9/sys/ufs/ufs/ufs_vnops.c > Directory Properties: > stable/9/sys/ (props changed) >=20 > Modified: stable/9/sys/ufs/ufs/ufs_vnops.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > --- stable/9/sys/ufs/ufs/ufs_vnops.c Sat Aug 31 17:33:25 2013 (r2551= 03) > +++ stable/9/sys/ufs/ufs/ufs_vnops.c Sat Aug 31 17:38:49 2013 (r2551= 04) > @@ -1271,7 +1271,7 @@ relock: > error =3D VFS_VGET(mp, ino, LK_EXCLUSIVE, &nvp); > if (error !=3D 0) > goto releout; > - VOP_UNLOCK(nvp, 0); > + vput(nvp); > atomic_add_int(&rename_restarts, 1); > goto relock; > } > _______________________________________________ > svn-src-stable-9@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9 > To unsubscribe, send any mail to "svn-src-stable-9-unsubscribe@freebsd.org= "
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B7F5CBE2-11CC-4194-8C11-A347074BA16A>