Squashfs: remove the FILE_CACHE option
authorAdrien Schildknecht <adriens@google.com>
Wed, 28 Sep 2016 19:14:39 +0000 (12:14 -0700)
committerDaniel Rosenberg <drosen@google.com>
Thu, 9 Feb 2017 04:01:39 +0000 (04:01 +0000)
FILE_DIRECT is working fine and offers faster results and lower memory
footprint.

Removing FILE_CACHE makes our life easier because we don't have to
maintain 2 differents function that does the same thing.

Signed-off-by: Adrien Schildknecht <adriens@google.com>
Change-Id: I6689ba74d0042c222a806f9edc539995e8e04c6b

fs/squashfs/Kconfig
fs/squashfs/Makefile
fs/squashfs/file_cache.c [deleted file]
fs/squashfs/page_actor.h

index ffb093e72b6ca89a0f8d339dfad3f04da0c97e8e..6dd158a216f4ab46032982ab3c5e743a3212166d 100644 (file)
@@ -25,34 +25,6 @@ config SQUASHFS
 
          If unsure, say N.
 
-choice
-       prompt "File decompression options"
-       depends on SQUASHFS
-       help
-         Squashfs now supports two options for decompressing file
-         data.  Traditionally Squashfs has decompressed into an
-         intermediate buffer and then memcopied it into the page cache.
-         Squashfs now supports the ability to decompress directly into
-         the page cache.
-
-         If unsure, select "Decompress file data into an intermediate buffer"
-
-config SQUASHFS_FILE_CACHE
-       bool "Decompress file data into an intermediate buffer"
-       help
-         Decompress file data into an intermediate buffer and then
-         memcopy it into the page cache.
-
-config SQUASHFS_FILE_DIRECT
-       bool "Decompress files directly into the page cache"
-       help
-         Directly decompress file data into the page cache.
-         Doing so can significantly improve performance because
-         it eliminates a memcpy and it also removes the lock contention
-         on the single buffer.
-
-endchoice
-
 choice
        prompt "Decompressor parallelisation options"
        depends on SQUASHFS
index 246a6f329d8957df4b3bf48129b3f0e415be2611..fe51f1507ed1ade4d58ceb6d1b72dfc939ac1f84 100644 (file)
@@ -5,8 +5,7 @@
 obj-$(CONFIG_SQUASHFS) += squashfs.o
 squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
 squashfs-y += namei.o super.o symlink.o decompressor.o
-squashfs-$(CONFIG_SQUASHFS_FILE_CACHE) += file_cache.o
-squashfs-$(CONFIG_SQUASHFS_FILE_DIRECT) += file_direct.o page_actor.o
+squashfs-y += file_direct.o page_actor.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_SINGLE) += decompressor_single.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI) += decompressor_multi.o
 squashfs-$(CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU) += decompressor_multi_percpu.o
diff --git a/fs/squashfs/file_cache.c b/fs/squashfs/file_cache.c
deleted file mode 100644 (file)
index f2310d2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2013
- * Phillip Lougher <phillip@squashfs.org.uk>
- *
- * This work is licensed under the terms of the GNU GPL, version 2. See
- * the COPYING file in the top-level directory.
- */
-
-#include <linux/fs.h>
-#include <linux/vfs.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/string.h>
-#include <linux/pagemap.h>
-#include <linux/mutex.h>
-
-#include "squashfs_fs.h"
-#include "squashfs_fs_sb.h"
-#include "squashfs_fs_i.h"
-#include "squashfs.h"
-
-/* Read separately compressed datablock and memcopy into page cache */
-int squashfs_readpage_block(struct page *page, u64 block, int bsize)
-{
-       struct inode *i = page->mapping->host;
-       struct squashfs_cache_entry *buffer = squashfs_get_datablock(i->i_sb,
-               block, bsize);
-       int res = buffer->error;
-
-       if (res)
-               ERROR("Unable to read page, block %llx, size %x\n", block,
-                       bsize);
-       else
-               squashfs_copy_cache(page, buffer, buffer->length, 0);
-
-       squashfs_cache_put(buffer);
-       return res;
-}
index 26dd82008b82c6b91bac678fdec131c1ecbc5167..d2df0544e0dfd904ece0510fba3afd0045f2d80f 100644 (file)
@@ -8,46 +8,6 @@
  * the COPYING file in the top-level directory.
  */
 
-#ifndef CONFIG_SQUASHFS_FILE_DIRECT
-struct squashfs_page_actor {
-       void    **page;
-       int     pages;
-       int     length;
-       int     next_page;
-};
-
-static inline struct squashfs_page_actor *squashfs_page_actor_init(void **page,
-       int pages, int length)
-{
-       struct squashfs_page_actor *actor = kmalloc(sizeof(*actor), GFP_KERNEL);
-
-       if (actor == NULL)
-               return NULL;
-
-       actor->length = length ? : pages * PAGE_CACHE_SIZE;
-       actor->page = page;
-       actor->pages = pages;
-       actor->next_page = 0;
-       return actor;
-}
-
-static inline void *squashfs_first_page(struct squashfs_page_actor *actor)
-{
-       actor->next_page = 1;
-       return actor->page[0];
-}
-
-static inline void *squashfs_next_page(struct squashfs_page_actor *actor)
-{
-       return actor->next_page == actor->pages ? NULL :
-               actor->page[actor->next_page++];
-}
-
-static inline void squashfs_finish_page(struct squashfs_page_actor *actor)
-{
-       /* empty */
-}
-#else
 struct squashfs_page_actor {
        union {
                void            **buffer;
@@ -77,5 +37,5 @@ static inline void squashfs_finish_page(struct squashfs_page_actor *actor)
 {
        actor->squashfs_finish_page(actor);
 }
-#endif
+
 #endif