These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / block / zram / zcomp.c
index 54d946a..c536177 100644 (file)
@@ -76,7 +76,7 @@ static void zcomp_strm_free(struct zcomp *comp, struct zcomp_strm *zstrm)
  */
 static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp)
 {
-       struct zcomp_strm *zstrm = kmalloc(sizeof(*zstrm), GFP_KERNEL);
+       struct zcomp_strm *zstrm = kmalloc(sizeof(*zstrm), GFP_NOIO);
        if (!zstrm)
                return NULL;
 
@@ -85,7 +85,7 @@ static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp)
         * allocate 2 pages. 1 for compressed data, plus 1 extra for the
         * case when compressed size is larger than the original one
         */
-       zstrm->buffer = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1);
+       zstrm->buffer = (void *)__get_free_pages(GFP_NOIO | __GFP_ZERO, 1);
        if (!zstrm->private || !zstrm->buffer) {
                zcomp_strm_free(comp, zstrm);
                zstrm = NULL;
@@ -274,7 +274,7 @@ ssize_t zcomp_available_show(const char *comp, char *buf)
        int i = 0;
 
        while (backends[i]) {
-               if (sysfs_streq(comp, backends[i]->name))
+               if (!strcmp(comp, backends[i]->name))
                        sz += scnprintf(buf + sz, PAGE_SIZE - sz - 2,
                                        "[%s] ", backends[i]->name);
                else
@@ -286,6 +286,11 @@ ssize_t zcomp_available_show(const char *comp, char *buf)
        return sz;
 }
 
+bool zcomp_available_algorithm(const char *comp)
+{
+       return find_backend(comp) != NULL;
+}
+
 bool zcomp_set_max_streams(struct zcomp *comp, int num_strm)
 {
        return comp->set_max_streams(comp, num_strm);