md: discard StateChanged device flag.
authorNeilBrown <neilb@suse.de>
Sun, 21 Mar 2010 23:28:51 +0000 (10:28 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 18 May 2010 05:27:47 +0000 (15:27 +1000)
This was needed when sysfs files could only be 'notified'
from process context.  Now that we have sys_notify_direct,
we can call it directly from an interrupt.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c
drivers/md/md.h

index e8d2388..2a64cba 100644 (file)
@@ -5970,7 +5970,7 @@ void md_error(mddev_t *mddev, mdk_rdev_t *rdev)
        mddev->pers->error_handler(mddev,rdev);
        if (mddev->degraded)
                set_bit(MD_RECOVERY_RECOVER, &mddev->recovery);
-       set_bit(StateChanged, &rdev->flags);
+       sysfs_notify_dirent(rdev->sysfs_state);
        set_bit(MD_RECOVERY_INTR, &mddev->recovery);
        set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
        md_wakeup_thread(mddev->thread);
@@ -6962,11 +6962,6 @@ void md_check_recovery(mddev_t *mddev)
                if (mddev->flags)
                        md_update_sb(mddev, 0);
 
-               list_for_each_entry(rdev, &mddev->disks, same_set)
-                       if (test_and_clear_bit(StateChanged, &rdev->flags))
-                               sysfs_notify_dirent(rdev->sysfs_state);
-
-
                if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) &&
                    !test_bit(MD_RECOVERY_DONE, &mddev->recovery)) {
                        /* resync/recovery still happening */
index 0514578..e4836c6 100644 (file)
@@ -74,9 +74,6 @@ struct mdk_rdev_s
 #define Blocked                8               /* An error occured on an externally
                                         * managed array, don't allow writes
                                         * until it is cleared */
-#define StateChanged   9               /* Faulty or Blocked has changed during
-                                        * interrupt, so it needs to be
-                                        * notified by the thread */
        wait_queue_head_t blocked_wait;
 
        int desc_nr;                    /* descriptor index in the superblock */