]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/cio/blacklist.c
Merge branch 'for-2.6.28' of git://linux-nfs.org/~bfields/linux
[linux-2.6-omap-h63xx.git] / drivers / s390 / cio / blacklist.c
index 0bfcbbe375c4b4640f50bf14e61ce1f6beae3062..2f547b840ef011f70fef2e559bd571d5b66d616e 100644 (file)
@@ -24,6 +24,7 @@
 #include "cio.h"
 #include "cio_debug.h"
 #include "css.h"
+#include "device.h"
 
 /*
  * "Blacklisting" of certain devices:
@@ -191,9 +192,9 @@ static int blacklist_parse_parameters(char *str, range_action action,
                        rc = blacklist_range(ra, from_ssid, to_ssid, from, to,
                                             msgtrigger);
                        if (rc)
-                               totalrc = 1;
+                               totalrc = -EINVAL;
                } else
-                       totalrc = 1;
+                       totalrc = -EINVAL;
        }
 
        return totalrc;
@@ -240,8 +241,10 @@ static int blacklist_parse_proc_parameters(char *buf)
                rc = blacklist_parse_parameters(buf, free, 0);
        else if (strcmp("add", parm) == 0)
                rc = blacklist_parse_parameters(buf, add, 0);
+       else if (strcmp("purge", parm) == 0)
+               return ccw_purge_blacklisted();
        else
-               return 1;
+               return -EINVAL;
 
        css_schedule_reprobe();
 
@@ -353,7 +356,7 @@ cio_ignore_write(struct file *file, const char __user *user_buf,
        }
        ret = blacklist_parse_proc_parameters(buf);
        if (ret)
-               rc = -EINVAL;
+               rc = ret;
        else
                rc = user_len;