Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp2511489imd; Fri, 2 Nov 2018 12:43:53 -0700 (PDT) X-Google-Smtp-Source: AJdET5ff351+8IAX/qSAfO+1ssFtZt/c+wF35F9EZMqQ88eAQcor0GFOg0thTKA413nN/BeKZVJS X-Received: by 2002:a17:902:ba96:: with SMTP id k22-v6mr726680pls.203.1541187833343; Fri, 02 Nov 2018 12:43:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541187833; cv=none; d=google.com; s=arc-20160816; b=ieZ+nKWpenW7sDdftsT6jrRAI3qnLTwROGMdLIBV14IbSmWWRsVkDlzojcDMkbSsMo JnfLG8VJtp3CvDbMTM7zi6jL2nTvW8BVO4vR1j2Aj7toEushbNavLc6CCfhrzetTjxlR CkjHatW9v4ocFO/bQ0uhwezebVRAAbBlK6d/jB53MSOZU+vL9X84WlPrsJfYYfLgUsGn VImZHtemxqgJT/pHzf81V4cqZoM6KpNZ46QSHKuBm6wj6m2bBnldlnO+C8iPiznuFOrI vda3H7APbl3rVtWsuAEh7nWgGePerV9MiI9eMtDVE5N0+QwBEmfrTsBrna17axANn42n z/Hw== 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; bh=Jg1kjPL1tZSmWIaOitD/BJqPalI6QK5BFfRrg8OdicY=; b=ViKreTMI4su6mGIc/qlzMeTUVjeSbN4Sfu+VtpKiHiBWU6yHXm0DyLV0e41EkTfjsU EywTTLj8BBvT9d4eyLWF8gALRXxesbT5/tF9YNKmJk7QXf27ucqbxSyIGhTBLkvuK5Wl PsZga7aAFEXfFQ3YOic5DnFie6aRT1ysfR0ZQygPU7boqD3ZWvn1uJqAExvQ1/G31ees VBq/YT8IWFalEsXh18qSJ4WxZ8xbWlWE/HoxacFgln7SqUaOICCgNkjsr74e6SB5lpv0 JwDADBVuN7AjCIZFE8FlPYouIURkUy4vhILU2aUBAV5G572V0AG870H6BcHj98GI1s5O M5rw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r18-v6si26164404pfc.253.2018.11.02.12.43.38; Fri, 02 Nov 2018 12:43:53 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727742AbeKCEvM (ORCPT + 99 others); Sat, 3 Nov 2018 00:51:12 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:43208 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726051AbeKCEvM (ORCPT ); Sat, 3 Nov 2018 00:51:12 -0400 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.90_1 #2 (Red Hat Linux)) id 1gIfL1-0001JK-IW; Fri, 02 Nov 2018 19:42:35 +0000 Date: Fri, 2 Nov 2018 19:42:35 +0000 From: Al Viro To: Gao Xiang Cc: Linus Torvalds , swhiteho@redhat.com, john.johansen@canonical.com, alan.christopher.jenkins@gmail.com, ebiederm@redhat.com, linux-fsdevel@vger.kernel.org, Linux Kernel Mailing List Subject: Re: [git pull] mount API series Message-ID: <20181102194235.GA32577@ZenIV.linux.org.uk> References: <20181031053355.GQ32577@ZenIV.linux.org.uk> <28156.1541092687@warthog.procyon.org.uk> <3549.1541116763@warthog.procyon.org.uk> <20181102040701.GX32577@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181102040701.GX32577@ZenIV.linux.org.uk> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 02, 2018 at 04:07:01AM +0000, Al Viro wrote: > On Thu, Nov 01, 2018 at 11:59:23PM +0000, David Howells wrote: > > > (*) mount-api-core. These are the internal-only patches that add the > > fs_context, the legacy wrapper and the security hooks and make certain > > filesystems make use of it. > > FWIW, while rereading that series I'd spotted something very odd in erofs. > It's orthogonal to everything else, but just to make sure it doesn't get > lost: > * sbi->dev_name thing in erofs is used only for debugging printks, > basically. Just use sb->s_id[] and be done with that. > * dump struct erofs_mount_private - you don't need dev_name in > your erofs_fill_super(). Just use mount_bdev() in usual fashion. > * what the hell are you doing with ->s_root??? Why would you > possibly want it hashed and what kind of dcache lookup could find it? > That d_rehash() looks deeply confused; what are you trying to do there? ... and while we are at it, what happens to unsigned int nameoff = le16_to_cpu(de[mid].nameoff); unsigned int matched = min(startprfx, endprfx); struct qstr dname = QSTR_INIT(data + nameoff, unlikely(mid >= ndirents - 1) ? maxsize - nameoff : le16_to_cpu(de[mid + 1].nameoff) - nameoff); /* string comparison without already matched prefix */ int ret = dirnamecmp(name, &dname, &matched); if le16_to_cpu(de[...].nameoff) is not monotonically increasing? I.e. what's to prevent e.g. (unsigned)-1 ending up in dname.len? Corrupted fs image shouldn't oops the kernel...