From 7a99c8888a9206a9ad0a082e6625bb722235fe71 Mon Sep 17 00:00:00 2001 From: hauke Date: Fri, 26 Mar 2010 19:53:30 +0000 Subject: brcm47xx: remove support for older for kernel git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20492 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../302-kmod-fuse-dcache-bug-fuse.patch | 82 ---------------------- 1 file changed, 82 deletions(-) delete mode 100644 target/linux/brcm47xx/patches-2.6.31/302-kmod-fuse-dcache-bug-fuse.patch (limited to 'target/linux/brcm47xx/patches-2.6.31/302-kmod-fuse-dcache-bug-fuse.patch') diff --git a/target/linux/brcm47xx/patches-2.6.31/302-kmod-fuse-dcache-bug-fuse.patch b/target/linux/brcm47xx/patches-2.6.31/302-kmod-fuse-dcache-bug-fuse.patch deleted file mode 100644 index ba4b799ec..000000000 --- a/target/linux/brcm47xx/patches-2.6.31/302-kmod-fuse-dcache-bug-fuse.patch +++ /dev/null @@ -1,82 +0,0 @@ ---- a/fs/fuse/dev.c -+++ b/fs/fuse/dev.c -@@ -533,6 +533,11 @@ static void fuse_copy_finish(struct fuse - } - } - -+#ifdef DCACHE_BUG -+extern void (*fuse_flush_cache_all)(void); -+extern void (*fuse_flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn); -+#endif -+ - /* - * Get another pagefull of userspace buffer, and map it to kernel - * address space, and lock request -@@ -541,6 +546,9 @@ static int fuse_copy_fill(struct fuse_co - { - unsigned long offset; - int err; -+#ifdef DCACHE_BUG -+ struct vm_area_struct *vma; -+#endif - - unlock_request(cs->fc, cs->req); - fuse_copy_finish(cs); -@@ -552,14 +560,22 @@ static int fuse_copy_fill(struct fuse_co - cs->nr_segs--; - } - down_read(¤t->mm->mmap_sem); -+#ifndef DCACHE_BUG - err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0, - &cs->pg, NULL); -+#else -+ err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0, -+ &cs->pg, &vma); -+#endif - up_read(¤t->mm->mmap_sem); - if (err < 0) - return err; - BUG_ON(err != 1); - offset = cs->addr % PAGE_SIZE; - cs->mapaddr = kmap_atomic(cs->pg, KM_USER0); -+#ifdef DCACHE_BUG -+ fuse_flush_cache_page(vma, cs->addr, page_to_pfn(cs->pg)); -+#endif - cs->buf = cs->mapaddr + offset; - cs->len = min(PAGE_SIZE - offset, cs->seglen); - cs->seglen -= cs->len; -@@ -573,6 +589,11 @@ static int fuse_copy_do(struct fuse_copy - { - unsigned ncpy = min(*size, cs->len); - if (val) { -+#ifdef DCACHE_BUG -+ // patch from mailing list, it is very important, otherwise, -+ // can't mount, or ls mount point will hang -+ fuse_flush_cache_all(); -+#endif - if (cs->write) - memcpy(cs->buf, *val, ncpy); - else ---- a/fs/fuse/fuse_i.h -+++ b/fs/fuse/fuse_i.h -@@ -8,6 +8,7 @@ - - #ifndef _FS_FUSE_I_H - #define _FS_FUSE_I_H -+#define DCACHE_BUG - - #include - #include ---- a/fs/fuse/inode.c -+++ b/fs/fuse/inode.c -@@ -1130,6 +1130,10 @@ static int __init fuse_init(void) - printk(KERN_INFO "fuse init (API version %i.%i)\n", - FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION); - -+#ifdef DCACHE_BUG -+printk("fuse init: DCACHE_BUG enabled\n"); -+#endif -+ - INIT_LIST_HEAD(&fuse_conn_list); - res = fuse_fs_init(); - if (res) -- cgit v1.2.3