summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-05-10 14:04:11 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2013-05-31 15:16:33 -0400
commit5d477b6079619910dab882fa229cce1f14f86cf8 (patch)
tree02d3791a335d20f6515b26aa8657b47120105796 /fs
parenta93cb29acaa8f75618c3f202d1cf43c231984644 (diff)
downloadlinux-5d477b6079619910dab882fa229cce1f14f86cf8.tar.gz
linux-5d477b6079619910dab882fa229cce1f14f86cf8.tar.bz2
linux-5d477b6079619910dab882fa229cce1f14f86cf8.zip
vfs: Fix invalid ida_remove() call
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. Reported-by: Cristian Rodríguez <crrodriguez@opensuse.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/pnode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/pnode.c b/fs/pnode.c
index 3d2a7141b87a..9af0df15256e 100644
--- a/fs/pnode.c
+++ b/fs/pnode.c
@@ -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);