]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
dm ioctl: only issue uevent on resume if state changed
authorMike Snitzer <snitzer@redhat.com>
Sat, 6 Mar 2010 02:32:24 +0000 (02:32 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 15 Mar 2010 16:07:08 +0000 (09:07 -0700)
commit 0f3649a9e305ea22eb196a84a2d7520afcaa6060 upstream.

Only issue a uevent on a resume if the state of the device changed,
i.e. if it was suspended and/or its table was replaced.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/md/dm-ioctl.c

index 1d669322b27c7fef59d6e92ba32b2b1d79aedc50..e3cf5686d0aa0221d91610861255f4d3444e31e6 100644 (file)
@@ -897,16 +897,17 @@ static int do_resume(struct dm_ioctl *param)
                        set_disk_ro(dm_disk(md), 1);
        }
 
-       if (dm_suspended_md(md))
+       if (dm_suspended_md(md)) {
                r = dm_resume(md);
+               if (!r)
+                       dm_kobject_uevent(md, KOBJ_CHANGE, param->event_nr);
+       }
 
        if (old_map)
                dm_table_destroy(old_map);
 
-       if (!r) {
-               dm_kobject_uevent(md, KOBJ_CHANGE, param->event_nr);
+       if (!r)
                r = __dev_status(md, param);
-       }
 
        dm_put(md);
        return r;