cvs commit: src/sys/ufs/ffs ffs_vfsops.c
Kris Kennaway
kris at obsecurity.org
Thu May 1 00:20:28 PDT 2003
On Wed, Apr 30, 2003 at 11:42:00PM -0700, Tim J. Robbins wrote:
> tjr 2003/04/30 23:42:00 PDT
>
> FreeBSD src repository
>
> Modified files:
> sys/ufs/ffs ffs_vfsops.c
> Log:
> Do not attempt to free NULL dinodes (i_din1 or i_din2) in ffs_ifree().
> These fields can be left as NULL if ffs_vget() allocates an inode but
> fails before the dinode memory has been allocated. There are two cases
> when this can occur: when we lose a race and another process has added
> the inode to the hash, and when reading the inode off disk fails.
>
> The bug was observed by Kris on one of the package-building machines.
> See http://marc.theaimsgroup.com/?l=freebsd-current&m=105172731013411&w=2
> In Kris's case, it was the bread() that failed because of a disk error.
>
> The alternative to this patch is to ensure that ffs_vget() does not call
> vput() when the inode that hasn't been properly initialised.
Thanks!
Kris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20030501/c1704491/attachment.bin
More information about the cvs-src
mailing list