Date: Tue, 02 Oct 2001 23:10:37 -0700 From: Kirk McKusick <mckusick@mckusick.com> To: Ian Dowse <iedowse@maths.tcd.ie> Cc: Matt Dillon <dillon@earth.backplane.com>, Yevgeniy Aleynikov <eugenea@infospace.com>, peter@FreeBSD.ORG, ache@FreeBSD.ORG, Ken Pizzini <kenp@infospace.com>, hackers@FreeBSD.ORG Subject: Re: bleh. Re: ufs_rename panic Message-ID: <200110030610.f936AbR11859@beastie.mckusick.com> In-Reply-To: Your message of "Tue, 02 Oct 2001 21:52:48 BST." <200110022152.aa36964@salmon.maths.tcd.ie>
next in thread | previous in thread | raw e-mail | index | archive | help
The problems all arise from the fact that we unlock the source while we look up the destination, and when we return to relookup the source, it may have changed/moved/disappeared. The reason to unlock the source before looking up the destination was to avoid deadlocking against ourselves on a lock that we held associated with the source. Since we now allow recursive locks on vnodes, it is no longer necessary to release the source before looking up the destination. So, it seems to me that the correct fix is to *not* release the source after looking it up, but rather hold it locked while we look up the destination. We can completely get rid of relookup and lots of other hairy code and generally make rename much simpler. Am I missing something here? ~Kirk To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110030610.f936AbR11859>