Re: [patch] Re: found it! Re: mnt_count accounting broken

From: willy@thepuffingroup.com
Date: Wed May 10 2000 - 14:26:56 EST


On Fri, May 05, 2000 at 09:38:07PM +0100, Tigran Aivazian wrote:
> ok, how about this patch?

Wouldn't this be better rendered as...

        error = 0;
        if ((count != 2) || (sb->s_root->d_inode->i_state))
                error = -EBUSY;

        mntput(mnt);

        if (error < 0)
                return error;

> --- linux/fs/super.c Fri May 5 08:20:28 2000
> +++ work/fs/super.c Fri May 5 21:35:29 2000
> @@ -980,11 +980,15 @@
> count = d_active_refs(sb->s_root);
> if (mnt->mnt_parent == mnt)
> count--;
> - if (count != 2)
> + if (count != 2) {
> + mntput(mnt);
> return -EBUSY;
> + }
>
> - if (sb->s_root->d_inode->i_state)
> + if (sb->s_root->d_inode->i_state) {
> + mntput(mnt);
> return -EBUSY;
> + }
>
> /* OK, that's the point of no return */
> mntput(mnt);
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:16 EST