if (nr_none) {
                __mod_lruvec_page_state(new_page, NR_FILE_PAGES, nr_none);
-               if (is_shmem)
-                       __mod_lruvec_page_state(new_page, NR_SHMEM, nr_none);
+               /* nr_none is always 0 for non-shmem. */
+               __mod_lruvec_page_state(new_page, NR_SHMEM, nr_none);
        }
 
        /* Join all the small entries into a single multi-index entry */
 
                /* Something went wrong: roll back page cache changes */
                xas_lock_irq(&xas);
-               mapping->nrpages -= nr_none;
-
-               if (is_shmem)
+               if (nr_none) {
+                       mapping->nrpages -= nr_none;
                        shmem_uncharge(mapping->host, nr_none);
+               }
 
                xas_set(&xas, start);
                xas_for_each(&xas, page, end - 1) {