]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
vfs: fix invalid ida_remove() call
authorTakashi Iwai <tiwai@suse.de>
Thu, 23 May 2013 00:37:05 +0000 (10:37 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 27 May 2013 06:08:57 +0000 (16:08 +1000)
When the group id of a shared mount is not allocated, the umount still
tries to call mnt_release_group_id(), which eventually hits a kernel
warning at ida_remove() spewing a message like:

  ida_remove called for id=0 which is not allocated.

This patch fixes the bug simply checking the group id in the caller.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reported-by: Cristian Rodríguez <crrodriguez@opensuse.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/pnode.c

index 3d2a7141b87a4b38a1aea383a68810ada1271404..9af0df15256e9405082fdb59d1a2c6fe97fb8e59 100644 (file)
@@ -83,7 +83,8 @@ static int do_make_slave(struct mount *mnt)
                if (peer_mnt == mnt)
                        peer_mnt = NULL;
        }
-       if (IS_MNT_SHARED(mnt) && list_empty(&mnt->mnt_share))
+       if (mnt->mnt_group_id && IS_MNT_SHARED(mnt) &&
+           list_empty(&mnt->mnt_share))
                mnt_release_group_id(mnt);
 
        list_del_init(&mnt->mnt_share);