2005-03-22 01:29:02

by Greg Banks

[permalink] [raw]
Subject: [PATCH 2.4] SGI 932676 link_path_walk refcount problem allows umount of active filesystem

G'day,

The attached patch fixes a bug in the VFS code which causes
"Busy inodes after unmount" and a subsequent oops.

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.


Attachments:
sgi932676-fix-link-following-vfsmount-refcount-bug.patch (1.98 kB)

2005-03-26 00:36:01

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH 2.4] SGI 932676 link_path_walk refcount problem allows umount of active filesystem

On Tue, Mar 22, 2005 at 12:24:37PM +1100, Greg Banks wrote:
> G'day,
>
> The attached patch fixes a bug in the VFS code which causes
> "Busy inodes after unmount" and a subsequent oops.

Applied, thanks.

>
> Greg.
> --
> Greg Banks, R&D Software Engineer, SGI Australian Software Group.
> I don't speak for SGI.
>

> Following an absolute symlink opens a window during which the
> filesystem containing the symlink has an outstanding dentry count
> and no outstanding vfsmount count. A umount() of the filesystem can
> (incorrectly) proceed, resulting in the "Busy inodes after unmount"
> message and an oops shortly thereafter.
>
> Systems using autofs-controlled NFS mounts are especially vulnerable,
> as autofs both increases the number of unmounts happening and does NFS
> mounting in response to lookups which can result in multiple-second
> vulnerability windows. However the bug could happen on any filesystem.
>
> This patch adds a mntget()/mntput() pair around the link following code
> (as the 2.6 code does). Attempts to umount() during link following
> now return EBUSY.
>
>
> Signed-off-by: Greg Banks <[email protected]>