Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp132176imm; Tue, 18 Sep 2018 18:17:23 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZNiAOxiryc1y6POo6C5SuiqJyzyCNIcjSxlkq1EhdGPf/hA6qfXXSeEhUDIA+QNB3b/st7 X-Received: by 2002:a63:c046:: with SMTP id z6-v6mr30137587pgi.114.1537319843185; Tue, 18 Sep 2018 18:17:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537319843; cv=none; d=google.com; s=arc-20160816; b=GiEw2p3DXLvusVQJAohfLosJgaGF4EvIa1f9ZNzVP132DiY6xNReHMTXMn6/o7+TE7 RcyfKR4rWRexHv/H+q4qcq4qeZ9MsPEvhRiJj6AU5pyrOKyaf3TfSoWDBFNeq+frQTfh +0MeDQz1kA0zuYV/eFQeGIOKzbRssKUn+304tuXmgPaVEaEH1oKB3bHGhfCvYj+li09b DserbKIjJfPIL6Tfvt3DB2cO6UZrtV1SMGzS6Pum9MTt1slwBRlCQSob0NTlsYYJIf1i gv5Jd4u0dnmjzq1M2XJ4VwnehiktXMLM1a7Xv2OCt8PWyGGgkf+Zr3OE37zjskHsVOHZ nGBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=1pa4EslELnW/fHClHiqqZxKoPWUsD49HULo60IWjC5A=; b=JToCAMOtkTsbLGd2hwAUqAW/bSD7a2O6UP4iL0MtUMkik8qBXCZHrf1xvFXGc1M1pe HepuW2REy2Rq7yqNOpTwjDHrnaBbtKVL2zK9gMPowW5YhDS534josE/wYlhQSSXs6DBx uZ+LM4jrvuKKIPBCY6ijpWeLcravUmm5rQke2CJhY9AtlnyabUAnB7wIbZOr5ZIJHONR BG5PASUyxcrtbNZUD5GbYWgLa/7QACOirOyEzYFn1X9gFWnpUJOjbc/JIW3olGOvO52W xGUFLJCGSKVvacPsl3S5WaFdtF377qIbUnZlUEdQkq8ok0PaQfdnX84nXYwo8t5bVr3g rOpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tyYIA4Mc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i184-v6si21799697pfb.98.2018.09.18.18.17.08; Tue, 18 Sep 2018 18:17:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tyYIA4Mc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730770AbeISGul (ORCPT + 99 others); Wed, 19 Sep 2018 02:50:41 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:40159 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728188AbeISGul (ORCPT ); Wed, 19 Sep 2018 02:50:41 -0400 Received: by mail-pg1-f194.google.com with SMTP id l63-v6so1876884pga.7; Tue, 18 Sep 2018 18:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=1pa4EslELnW/fHClHiqqZxKoPWUsD49HULo60IWjC5A=; b=tyYIA4McBXbjKx7XfoHCjk34jjrXq2Rc26kYnu3hOUD2gyoZ1qqGmt9Z62hVg8mxAY oUMUDxiNADnQ0NcIdQZ/e126XSc4YjpTXLXD/HiQVlqaURVB5rMudek3ECZH1wZLjKSj CNeAGiXtx2oripahYd0RNPZgitiB7SbzJH9Vy1XJ3rrPXaL3sh1Ko70C9TOsHxfguo9h hhOvLFdaCzL+/Wb7TSSNXoeqY3Gw5lZCFETu3U++TFuIQmPbn09nIIB5ySjGXtYMGYAx SnRN+j0u2GPG7Ds20gW4b+xigBD1S0IGI/EEn42YMNbsggHsRbK7reXIhek1d1Qfw3aP P2lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=1pa4EslELnW/fHClHiqqZxKoPWUsD49HULo60IWjC5A=; b=kbvCUNkZE+ffftTlFtUQ26LUA4HZbzeELTcaibAEw+8MuTqI4EDG3ZgoH2hK+tudhG vI4fE3N2MdRFbjY5CjSt3XxawHLRiCj7TiG/bpslR1sLPxp55IOZ0ENRhroZj4VtnMsf OkL72JMCJ6jnjMjNsHKKOKrgC6GKIO2VK2MDM+vT26/PpOYW2z5A/X0HXdL+60VTm3HU igJeEH/zU7FZXvOqjtbgBrkFipmm29qQcO4VJHSl0jxtnoDpvYDABLPpfQ/mgGKUmdYu TtseE+IYvshACZyU1cvs3FsbxLBplk9cvAxueegrQ3Me9jN3x0PrB3CB1ebGIQB+ARsA izEA== X-Gm-Message-State: APzg51APiH+mbL/8wh3qnmxy2TtElZSRC+q6TEMI5rj9vRMq5pf46qbB hIT3qb16KhC8R6ao/2qcOCw= X-Received: by 2002:a65:40cd:: with SMTP id u13-v6mr29745084pgp.334.1537319724230; Tue, 18 Sep 2018 18:15:24 -0700 (PDT) Received: from localhost ([175.223.11.230]) by smtp.gmail.com with ESMTPSA id p4-v6sm25754384pfb.180.2018.09.18.18.15.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Sep 2018 18:15:23 -0700 (PDT) Date: Wed, 19 Sep 2018 10:15:19 +0900 From: Sergey Senozhatsky To: David Howells Cc: Sergey Senozhatsky , Guenter Roeck , viro@zeniv.linux.org.uk, torvalds@linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Steven Rostedt Subject: Re: [PATCH 14/33] vfs: Implement a filesystem superblock creation/configuration context [ver #11] Message-ID: <20180919011519.GB407@jagdpanzerIV> References: <20180918090722.GA463@jagdpanzerIV> <20180911220743.GA13208@roeck-us.net> <20180911174641.GA15149@roeck-us.net> <153313703562.13253.5766498657900728120.stgit@warthog.procyon.org.uk> <153313714181.13253.304098108512966976.stgit@warthog.procyon.org.uk> <27113.1536702746@warthog.procyon.org.uk> <32382.1536707855@warthog.procyon.org.uk> <20180911235403.GA10107@roeck-us.net> <27019.1537288742@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <27019.1537288742@warthog.procyon.org.uk> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (09/18/18 17:39), David Howells wrote: [..] > -static int legacy_init_fs_context(struct fs_context *fc, struct dentry *dentry) > +int legacy_init_fs_context(struct fs_context *fc, struct dentry *dentry) > { > + switch (fc->purpose) { > + default: > + fc->fs_private = kzalloc(sizeof(struct legacy_fs_context), > + GFP_KERNEL); > + if (!fc->fs_private) > + return -ENOMEM; ops->reconfigure() invoked for FS_CONTEXT_FOR_UMOUNT or FS_CONTEXT_FOR_EMERGENCY_RO will never access fc->fs_private? > + break; > > - fc->fs_private = kzalloc(sizeof(struct legacy_fs_context), GFP_KERNEL); > - if (!fc->fs_private) > - return -ENOMEM; > + case FS_CONTEXT_FOR_UMOUNT: > + case FS_CONTEXT_FOR_EMERGENCY_RO: > + break; > + } So `fc' can either be zeroed-out, when it comes from fc = kzalloc(), or contain some garbage otherwise. Would it make sense to zero-out `fc' regardless of its origin? > down_write(&sb->s_umount); > - if (!sb_rdonly(sb)) > - /* Might want to call ->init_fs_context(). */ > - ret = reconfigure_super(&fc); > + if (!sb_rdonly(sb)) { > + int ret; > + > + if (fc.fs_type->init_fs_context) > + ret = fc.fs_type->init_fs_context(&fc, NULL); > + else > + ret = legacy_init_fs_context(&fc, NULL); > + > + if (ret == 0) { > + ret = reconfigure_super(&fc); > + fc.ops->free(&fc); ^^^^^^^ Is ops->free() always !NULL? -ss