Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3602985ybb; Mon, 6 Apr 2020 11:49:08 -0700 (PDT) X-Google-Smtp-Source: APiQypL6W9XdsUlUzH8wvvkUNqT0VdqlU+IEImos7e2UH8luZdA9sqkLVDXsh0LLYj5LtPpC1TMv X-Received: by 2002:a05:6830:11d7:: with SMTP id v23mr19240325otq.216.1586198948095; Mon, 06 Apr 2020 11:49:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586198948; cv=none; d=google.com; s=arc-20160816; b=d/Y6FL7hljDs0gad/kFL1tOv4P/4Sho+IY8juhNvLHJBeHm5oHCrZWAzvOYh22Pc8s ywcNYunMotSilDz6yIm/oUhkoizz27WolzomKEdaBWjcdhWM3+a3/LBDkbDgpp9AuLnk t7qGsbV59A0yapV8MyALWvti0kzqFK0CL4idzr60PMJUGvpwLuPTZcJnmStydMPJn0Ml PJGQhozvdVvoNFs93xaoMQc+p8q3EpxRfUJMc5yCxF18bzI08wBUv7RVG4R2IlP/xA/r OI4pm/uVY13cj/vC9DglEK1PkT/8DAhvQUMfs39JAT9f80KfHnms4G15qMplDBtfQIl8 dXDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=4qPdROjKZO0mmqaXQ0kpM7CGbRZE5JekH7V+oyKV7co=; b=SXVwiQ3cTOMwHAquahrjAV7T1oia3YFEayJ2cgTqGRbdINVJffHD+kpbgP0p5gMBCH SCTSr5Y0ILoicYt2akB4cCWqpbbHkvPCDMSQpL4nzXZ7Co5eiFVjKsC7Fmtb9jXkuXYT z4pzxZqdDQp1EqW3I1uu+wxS+xvJMM57DCFqmG5gfcWNkFWMkBDxtcb8dSSTL95OtuGk 3us0S4i//vnMNCihIUOXX4s3Pwl2s8tXd9CeDWMcrNtoJ4rtNkoN4cA4p8xjMjlvjl6M db/481S00/lGGeFuLAxbhbnq52ZhjO9xWz9fDXLDCZBy028z1Oqe0ehJcE9v0VO8yNsl ajAA== 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 p19si128403oic.39.2020.04.06.11.48.55; Mon, 06 Apr 2020 11:49:08 -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 S1726272AbgDFSsP (ORCPT + 99 others); Mon, 6 Apr 2020 14:48:15 -0400 Received: from gardel.0pointer.net ([85.214.157.71]:60830 "EHLO gardel.0pointer.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725962AbgDFSsP (ORCPT ); Mon, 6 Apr 2020 14:48:15 -0400 Received: from gardel-login.0pointer.net (gardel.0pointer.net [85.214.157.71]) by gardel.0pointer.net (Postfix) with ESMTP id 0F440E8017E; Mon, 6 Apr 2020 20:48:13 +0200 (CEST) Received: by gardel-login.0pointer.net (Postfix, from userid 1000) id A7D69161537; Mon, 6 Apr 2020 20:48:12 +0200 (CEST) Date: Mon, 6 Apr 2020 20:48:12 +0200 From: Lennart Poettering To: Linus Torvalds Cc: Karel Zak , "J. Bruce Fields" , Miklos Szeredi , Ian Kent , David Howells , Christian Brauner , Al Viro , dray@redhat.com, Miklos Szeredi , Steven Whitehouse , Jeff Layton , andres@anarazel.de, keyrings@vger.kernel.org, linux-fsdevel , Linux Kernel Mailing List , Aleksa Sarai Subject: Re: Upcoming: Notifications, FS notifications and fsinfo() Message-ID: <20200406184812.GA37843@gardel-login> References: <36e45eae8ad78f7b8889d9d03b8846e78d735d28.camel@themaw.net> <27994c53034c8f769ea063a54169317c3ee62c04.camel@themaw.net> <20200403111144.GB34663@gardel-login> <20200403151223.GB34800@gardel-login> <20200403203024.GB27105@fieldses.org> <20200406091701.q7ctdek2grzryiu3@ws.net.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mo, 06.04.20 09:34, Linus Torvalds (torvalds@linux-foundation.org) wrote: > On Mon, Apr 6, 2020 at 2:17 AM Karel Zak wrote: > > > > On Fri, Apr 03, 2020 at 04:30:24PM -0400, J. Bruce Fields wrote: > > > > > > nfs-utils/support/misc/mountpoint.c:check_is_mountpoint() stats the file > > > and ".." and returns true if they have different st_dev or the same > > > st_ino. Comparing mount ids sounds better. > > > > BTW, this traditional st_dev+st_ino way is not reliable for bind mounts. > > For mountpoint(1) we search the directory in /proc/self/mountinfo. > > These days you should probably use openat2() with RESOLVE_NO_XDEV. Note that opening a file is relatively "heavy" i.e. typically triggers autofs and stuff, and results in security checks (which can fail and such, and show up in audit). statx() doesn't do that, and that's explicitly documented (i.e. AT_NO_AUTOMOUNT and stuff). Hence, unless openat2() has some mechanism of doing something like an "open() but not really" (O_PATH isn't really sufficient for this, no?) I don't think it could be a good replacement for a statx() type check if something is a mount point or not. I mean, think about usecases: a common usecase for "is this a mountpoint" checks are tools that traverse directory trees and want to stop at submounts. They generally try to minimize operations and hence stat stuff but don't open anything unless its what they look foor (or a subdir they identified as a non-submount). Doing an extra openat2() in between there doesn't sound so attractive, since you pay heavily... Lennart -- Lennart Poettering, Berlin