Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3700773imm; Fri, 19 Oct 2018 15:36:59 -0700 (PDT) X-Google-Smtp-Source: ACcGV61LWNH35CmQ2KxbHZ3nPWHp4LBTY01glkRLnr37+hjQ9mm43kRTcFs91uK+YKLiIbuxQYqk X-Received: by 2002:a17:902:aa0a:: with SMTP id be10-v6mr36046351plb.294.1539988619697; Fri, 19 Oct 2018 15:36:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539988619; cv=none; d=google.com; s=arc-20160816; b=DzQM4uZ5vverx8UQlycQPeKZ+y0l7ctFFQH+9JeL4GROBaXExXnowzwWwP1g4tWiM3 G/oz0cmY2NwZCiQ5lby9tNMFIxCSvVcfme4DSUQtRxEo4BYK89Flr0WqMHFRpvxdo/cX TKVarrdhA20TeLGYl20ie/ebjFKlvwhJxWonT0o1O3CXbrfx3VjoOXsfByhieu1X5mZD 2Z0KRWlHsGDQ2CoJtkkx/Y9eXHW7l7jHWfvrr5iEOMHJQ4zuRucW6uFdGNkfTjYoQYpL rX48Apm2tfyuJWJvCQTOKd3gFxTiwXc1Dpm9+ZxCyXmtSmBkDQKAo6i7oNAksRUc7z8Y D5sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:content-id:mime-version :subject:cc:to:references:in-reply-to:from:organization; bh=v9ti4xShQNH6HLY8iWNkJOi+ORg+I8GRgP4QCETtXdM=; b=kShiohxmxZFlFVTyvquwHqS9VWZgxigPv2ooCVhDLicV2KFy2yhgxu0I/yDKQumVNp 2toivfxCzVMzOQx/4J5BTznTDytyz2yp3wY5lUOnn2Md6uyYDuBgrn2IPlsqS1ojUbkg XVjJMPgYlew/z1l6yOoEWVghEs/qR9YCoKjVYKb8bQYAyxo8RatS0Jn9x19L850piPeY PO6wp4JxwDXToYz1gGaFokSxOkNwBxPYDxY/uS6sUZWBcwIDRNSqTA2pLjlpI5x1yuxr DqkuCiFOQtaaFkimvNykNj/2y62zx6VCbSy5hEq+3oiJJYfQUA1hM6tUuyVOM6lO+qNi KUgw== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v20-v6si23980386pgk.586.2018.10.19.15.36.44; Fri, 19 Oct 2018 15:36:59 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726845AbeJTGoV (ORCPT + 99 others); Sat, 20 Oct 2018 02:44:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36338 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726194AbeJTGoV (ORCPT ); Sat, 20 Oct 2018 02:44:21 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A598281F0C; Fri, 19 Oct 2018 22:36:21 +0000 (UTC) Received: from warthog.procyon.org.uk (ovpn-120-250.rdu2.redhat.com [10.10.120.250]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0CC351001914; Fri, 19 Oct 2018 22:36:19 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: <97872123-70be-2833-ea7a-a463ce204b53@gmail.com> References: <97872123-70be-2833-ea7a-a463ce204b53@gmail.com> <862e36a2-2a6f-4e26-3228-8cab4b4cf230@gmail.com> <153754740781.17872.7869536526927736855.stgit@warthog.procyon.org.uk> <153754743491.17872.12115848333103740766.stgit@warthog.procyon.org.uk> <6518.1539956277@warthog.procyon.org.uk> To: Alan Jenkins Cc: dhowells@redhat.com, viro@zeniv.linux.org.uk, torvalds@linux-foundation.org, ebiederm@xmission.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, mszeredi@redhat.com Subject: Re: [PATCH 03/34] teach move_mount(2) to work with OPEN_TREE_CLONE [ver #12] MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <29901.1539988579.1@warthog.procyon.org.uk> Date: Fri, 19 Oct 2018 23:36:19 +0100 Message-ID: <29902.1539988579@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 19 Oct 2018 22:36:21 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Alan Jenkins wrote: > # open_tree_clone 3 # cd /proc/self/fd/3 > # mount --move . /mnt > [ 41.747831] mnt_flags=1020 umount=0 > # cd / > # umount /mnt > umount: /mnt: target is busy > > ^ a newly introduced bug? I do not remember having this problem before. The reason EBUSY is returned is because propagate_mount_busy() is called by do_umount() with refcnt == 2, but mnt_count == 3: umount-3577 M=f8898a34 u=3 0x555 sp=__x64_sys_umount+0x12/0x15 the trace line being added here: if (!propagate_mount_busy(mnt, 2)) { if (!list_empty(&mnt->mnt_list)) umount_tree(mnt, UMOUNT_PROPAGATE|UMOUNT_SYNC); retval = 0; } else { trace_mnt_count(mnt, mnt->mnt_id, atomic_read(&mnt->mnt_count), 0x555, __builtin_return_address(0)); } The busy evaluation is a result of this check: if (!list_empty(&mnt->mnt_mounts) || do_refcount_check(mnt, refcnt)) in propagate_mount_busy(). The problem apparently being that mnt_count counts both refs from mountings and refs from other sources, such as file descriptors or pathwalk. David