Re: [PATCH 2/3] vfs: add propagate_mount_tree_busy() helper

From: Ian Kent
Date: Tue Jul 19 2022 - 22:31:59 EST



On 20/7/22 09:54, Al Viro wrote:
On Mon, Jul 11, 2022 at 11:37:46AM +0800, Ian Kent wrote:

+static int do_mount_in_use_check(struct mount *mnt, int cnt)
+{
+ struct mount *topper;
+
+ /* Is there exactly one mount on the child that covers
+ * it completely?
+ */
+ topper = find_topper(mnt);
+ if (topper) {
+ int topper_cnt = topper->mnt_mounts_cnt + 1;
+
+ /* Open file or pwd within singular mount? */
+ if (do_refcount_check(topper, topper_cnt))
+ return 1;
Whatever the hell for? umount(2) will be able to slide the
underlying mount from under the topper, whatever the
refcount of topper might have been.

My thinking was that a process could have set a working

directory (or opened a descriptor) and some later change

to an autofs map resulted in it being mounted on. It's

irrelevant now with your suggested simpler approach, ;)


Ian