From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-eopbgr30117.outbound.protection.outlook.com ([40.107.3.117]:6016 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728607AbeGaTQC (ORCPT ); Tue, 31 Jul 2018 15:16:02 -0400 Date: Tue, 31 Jul 2018 10:34:22 -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: <20180731173421.GA14809@outlook.office365.com> References: <20180731072928.2413-1-avagin@openvz.org> <14901.1533027156@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <14901.1533027156@warthog.procyon.org.uk> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, Jul 31, 2018 at 09:52:36AM +0100, David Howells wrote: > Andrei Vagin wrote: > > > @@ -3435,9 +3435,6 @@ SYSCALL_DEFINE3(fsmount, int, fs_fd, unsigned int, flags, unsigned int, ms_flags > > * do any memory allocation or anything like that at this point as we > > * don't want to have to handle any errors incurred. > > */ > > - if (fc->ops && fc->ops->free) > > - fc->ops->free(fc); > > - fc->fs_private = NULL; > > fc->s_fs_info = NULL; > > fc->sb_flags = 0; > > fc->sloppy = false; > > This isn't the right fix. The context needs to be reset at this point so that > it's prepared to be reinitialised into in the same state as one generated by > fspick(). I understand this. init_fs_context() is called from fspick() and fs_context->free() is called for contexts which have been created in fspick(). > > 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()? > > David