From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH] [2.6.24-rc3-mm1] loop cleanup in fs/namespace.c - repost Date: Mon, 26 Nov 2007 10:30:28 +0000 Message-ID: <20071126103028.GQ8181@ftp.linux.org.uk> References: <47447184.6040805@gmail.com> <474481B9.9000603@oracle.com> <47448D0A.1040405@gmail.com> <47449932.3090801@oracle.com> <4744B5EF.5010708@gmail.com> <20071121152433.1b5289c4.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Dmitri Vorobiev , zach.brown@oracle.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Andrew Morton Return-path: Received: from zeniv.linux.org.uk ([195.92.253.2]:55199 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753302AbXKZKad (ORCPT ); Mon, 26 Nov 2007 05:30:33 -0500 Content-Disposition: inline In-Reply-To: <20071121152433.1b5289c4.akpm@linux-foundation.org> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Wed, Nov 21, 2007 at 03:24:33PM -0800, Andrew Morton wrote: > -repeat: > - if (atomic_dec_and_lock(&mnt->mnt_count, &vfsmount_lock)) { > + while (atomic_dec_and_lock(&mnt->mnt_count, &vfsmount_lock)) { > if (likely(!mnt->mnt_pinned)) { > spin_unlock(&vfsmount_lock); > __mntput(mnt); > - return; > + break; > } > atomic_add(mnt->mnt_pinned + 1, &mnt->mnt_count); > mnt->mnt_pinned = 0; > spin_unlock(&vfsmount_lock); > acct_auto_close_mnt(mnt); > security_sb_umount_close(mnt); > - goto repeat; > } > } > > This patch has no changelog which I can use. BTW, I have a problem with that one. The change is misleading; FWIW, I'm very tempted to turn that into tail recursion, with if (!atomic_dec_and_lock(&mnt->mnt_count, &vfsmount_lock)) return; in the very beginning (i.e. invert the test and pull the body to top level).