From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-eopbgr80120.outbound.protection.outlook.com ([40.107.8.120]:39425 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731637AbeHAAbC (ORCPT ); Tue, 31 Jul 2018 20:31:02 -0400 Date: Tue, 31 Jul 2018 15:48:08 -0700 From: Andrei Vagin To: David Howells Cc: Andrei Vagin , linux-fsdevel@vger.kernel.org, Andrei Vagin Subject: Re: [PATCH dhowells/mount-context] fs: don't call fs_context->free() from fsmount() Message-ID: <20180731224807.GA8037@outlook.office365.com> References: <20180731173421.GA14809@outlook.office365.com> <20180731072928.2413-1-avagin@openvz.org> <14901.1533027156@warthog.procyon.org.uk> <22269.1533070605@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <22269.1533070605@warthog.procyon.org.uk> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, Jul 31, 2018 at 09:56:45PM +0100, David Howells wrote: > Andrei Vagin wrote: > > > > I can do this two ways: (1) stick a flag in the context that says if > > > ->free() needs calling, (2) make all the ->free() routines aware that they > > > may see the reset state. I think (1) is less error prone. > > > > Does it mean that fc->fs_type->init_fs_context() should not be called > > contexts which are created from fspick()? > > No. I've put a flag in the context that is set when ->init_fs_context() is > called and cleared when ->free() is called. ->free() isn't called in the put > routine if the flag isn't set. > /* We've done the mount bit - now move the file context into > * more or less the same state as if we'd done an fspick(). According to this comment, a context after fsmount() should be in the same state as after fspick(). In fsmount(), we call ->free() which is oposite to init_fs_context(). If we want to have "more or less the same state" and want to call fs_context->free() in fsmount(), this means that we should not call fc->fs_type->init_fs_context() in fspick()... Where am I wrong? > > David