On Fri, Sep 21, 2007 at 03:05:40PM -0700, Andrew Morton wrote:
btw, I'm not really a great admirer of the whole patchset: it does
some pretty nasty-looking things: allocating dynamic memory,
grabbing the underlying pageframes with virt_to_page(), passing them
back into kernel APIs which are
Attached the fixes necessary to support 64k pagesize/blocksize. I think these
are useful
independent of the large blocksize patchset since there are architectures that
support
64k page size and that could use these large buffer sizes without the large
buffersize
patchset.
Are these patches in
[This patch allows architectures that use 64k blocksizes--like IA64 and
PPC64--to use 64k blocks on ext filesystems]
The patches to support blocksizes up to PAGESIZE, max 64KB for ext2/3/4,\
were originally from Takashi Sato.
http://marc.info/?l=linux-ext4m=115768873518400w=2
It's quite simple
Prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato [EMAIL PROTECTED]
Signed-off-by: Mingming Cao [EMAIL PROTECTED]
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
fs/ext3/dir.c | 13 ---
fs/ext3/namei.c | 88
[2/4] ext2: fix rec_len overflow
- prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato [EMAIL PROTECTED]
Signed-off-by: Mingming Cao [EMAIL PROTECTED]
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
fs/ext2/dir.c | 46
RFC-V1
- Support for all compound functions for virtual compound pages
(including the compound_nth_page() necessary for LBS mmap support)
- Fix various bugs
- Fix i386 build
Currently there is a strong tendency to avoid larger page allocations in
the kernel because of past fragmentation issues
pgtable.h does not include highmem.h but uses various constants from
highmem.h. We cannot include highmem.h because highmem.h will in turn
include many other include files that also depend on pgtable.h
So move the definitions from highmem.h into pgtable.h.
Signed-off-by: Christoph Lameter [EMAIL
We already have page table manipulation for vmalloc in vmalloc.c. Move the
vmalloc_to_page() function there as well.
Move the definitions for vmalloc related functions in mm.h to before the
functions dealing with compound pages because they will soon need to use
them.
Signed-off-by: Christoph
The page array is repeatedly indexed both in vunmap and vmalloc_area_node().
Add a temporary variable to make it easier to read (and easier to patch
later).
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
mm/vmalloc.c | 16 +++-
1 file changed, 11 insertions(+), 5
Make vunmap return the page array that was used at vmap. This is useful
if one has no structures to track the page array but simply stores the
virtual address somewhere. The disposition of the page array can be
decided upon after vunmap. vfree() may now also be used instead of
vunmap which will
is_vmalloc_addr() is used in a couple of places. Add a version to vmalloc.h
and replace the other checks.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
drivers/net/cxgb3/cxgb3_offload.c |4 +---
fs/ntfs/malloc.h |3 +--
fs/proc/kcore.c |2
Sometimes we need to figure out which vmalloc address is in use
for a certain page struct. There is no easy way to figure out
the vmalloc address from the page struct. So simply search through
the kernel page tables to find the address. This is a fairly expensive
process. Use sparingly (or provide
Currently vmalloc is used for the zone wait table possibly generating the need
to generate lots of TLBs to access the tables. We can now use GFP_VFALLBACK to
attempt the use of a physically contiguous page that can then use the large
kernel TLBs.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
If bit waitqueue is passed a virtual address then it must use
vmalloc_to_page instead of virt_to_page to get to the page struct.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
kernel/wait.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6/kernel/wait.c
This is in particular useful for large I/Os because it will allow 100
allocs from the SLUB fast path without having to go to the page allocator.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
fs/buffer.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index:
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
fs/dcache.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-2.6/fs/dcache.c
===
--- linux-2.6.orig/fs/dcache.c 2007-09-24 16:47:43.0 -0700
+++
SLAB_VFALLBACK can be specified for selected slab caches. If fallback is
available then the conservative settings for higher order allocations are
overridden. We then request an order that can accomodate at mininum
100 objects. The size of an individual slab allocation is allowed to reach
up to
If we are in an interrupt context then simply defer the free via a workqueue.
Removing a virtual mappping *must* be done with interrupts enabled
since tlb_xx functions are called that rely on interrupts for
processor to processor communications.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
Sparsemem currently attempts first to do a physically contiguous mapping
and then falls back to vmalloc. The same thing can now be accomplished
using GFP_VFALLBACK.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
mm/sparse.c | 23 +++
1 file changed, 3
Virtual fallbacks are rare and thus subtle bugs may creep in if we do not
test the fallbacks. CONFIG_VFALLBACK_ALWAYS makes all GFP_VFALLBACK
allocations fall back to virtual mapping.
Signed-off-by: Christoph Lameter [EMAIL PROTECTED]
---
lib/Kconfig.debug | 11 +++
mm/page_alloc.c
In an interrupt context we cannot wait for the vmlist_lock in
__get_vm_area_node(). So use a trylock instead. If the trylock fails
then the atomic allocation will fail and subsequently be retried.
This only works because the flush_cache_vunmap in use for
allocation is never performing any IPIs in
Add a new gfp flag
__GFP_VFALLBACK
If specified during a higher order allocation then the system will fall
back to vmap and attempt to create a virtually contiguous area instead of
a physically contiguous area. In many cases the virtually contiguous area
can stand in for the physically
On Sep 25, 2007 16:30 -0700, Christoph Lameter wrote:
[2/4] ext2: fix rec_len overflow
- prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato [EMAIL PROTECTED]
Signed-off-by: Mingming Cao [EMAIL PROTECTED]
Signed-off-by: Christoph Lameter [EMAIL
The following is a series of patches related to Unionfs. Aside from a few
minor cleanups/fixes, the two main changes are (1) lower nameidata support
so we can stack on nfsv4, and (2) un/likely optimizations. These patches
were tested (where appropriate) on our 2.6.23-rc8 latest code, as well as
Fixes bugs in number promotion/demotion computation, as per
http://lkml.org/lkml/2007/9/20/17
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Acked-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/mmap.c |5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/xattr.c | 12 ++--
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/unionfs/xattr.c b/fs/unionfs/xattr.c
index 7f77d7d..bd2de06 100644
--- a/fs/unionfs/xattr.c
+++ b/fs/unionfs/xattr.c
@@ -23,14 +23,14 @@ void
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/fanout.h | 13 -
fs/unionfs/union.h |4 ++--
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/fs/unionfs/fanout.h b/fs/unionfs/fanout.h
index 51aa0de..6405399 100644
--- a/fs/unionfs/fanout.h
+++
This is to avoid filling the console/logs with messages that are primarily
of debugging use.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Acked-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/commonfops.c |4 ++--
fs/unionfs/dentry.c |6 +++---
fs/unionfs/union.h |4
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/rdstate.c | 15 ---
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/fs/unionfs/rdstate.c b/fs/unionfs/rdstate.c
index 0a18d5c..7ec7f95 100644
--- a/fs/unionfs/rdstate.c
+++ b/fs/unionfs/rdstate.c
@@ -45,7
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/mmap.c | 28 ++--
1 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/fs/unionfs/mmap.c b/fs/unionfs/mmap.c
index 37af979..1cea075 100644
--- a/fs/unionfs/mmap.c
+++ b/fs/unionfs/mmap.c
@@ -84,7
Pass nameidata structures as needed to the lower file system, support
LOOKUP_ACCESS/OPEN intents. This makes unionfs work on top of nfsv4.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Acked-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/dentry.c | 11 +--
fs/unionfs/inode.c |
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/debug.c | 20
fs/unionfs/dentry.c |4 +++-
fs/unionfs/inode.c |8 +++-
fs/unionfs/union.h |4
4 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/fs/unionfs/debug.c
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/sioq.c |4 ++--
fs/unionfs/subr.c | 26 +-
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/fs/unionfs/sioq.c b/fs/unionfs/sioq.c
index 2a8c88e..35d9fc3 100644
--- a/fs/unionfs/sioq.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/debug.c |6 --
fs/unionfs/dentry.c |2 +-
fs/unionfs/inode.c | 14 --
fs/unionfs/main.c |4 ++--
fs/unionfs/union.h |2 +-
5 files changed, 16 insertions(+), 12 deletions(-)
diff --git
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/unlink.c | 32
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/fs/unionfs/unlink.c b/fs/unionfs/unlink.c
index 3924f7f..33d08d9 100644
--- a/fs/unionfs/unlink.c
+++ b/fs/unionfs/unlink.c
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/file.c | 38 +++---
1 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c
index d8eaaa5..06ca1fa 100644
--- a/fs/unionfs/file.c
+++ b/fs/unionfs/file.c
@@
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/lookup.c | 44 ++--
1 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/fs/unionfs/lookup.c b/fs/unionfs/lookup.c
index 2109714..92b5e0a 100644
--- a/fs/unionfs/lookup.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/dirfops.c | 22 +++---
fs/unionfs/dirhelper.c | 30 +++---
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/fs/unionfs/dirfops.c b/fs/unionfs/dirfops.c
index c923e58..fa2df88
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/dentry.c | 68 ++
1 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
index 52bcb18..3f3a18d 100644
--- a/fs/unionfs/dentry.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/rename.c | 96 +-
1 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/fs/unionfs/rename.c b/fs/unionfs/rename.c
index 7b8fe39..92c4515 100644
--- a/fs/unionfs/rename.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/commonfops.c | 94 +++---
1 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
index e69ccf6..db8f064 100644
---
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/copyup.c | 102 +-
1 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
index 23ac4c8..e3c5f15 100644
--- a/fs/unionfs/copyup.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/inode.c | 160 ++--
1 files changed, 80 insertions(+), 80 deletions(-)
diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
index 7ee4760..7ae4a25 100644
--- a/fs/unionfs/inode.c
+++
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/main.c | 98 ++-
fs/unionfs/super.c | 90
2 files changed, 95 insertions(+), 93 deletions(-)
diff --git a/fs/unionfs/main.c
From: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/union.h |4
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
index
From: Olivier Blin [EMAIL PROTECTED]
Do not update mtime if there is no upper branch for the inode. This
prevents from calling unionfs_lower_inode_idx() with a negative index, which
triggers a bug.
Signed-off-by: Olivier Blin [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
From: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Since we set the right value for d_type in readdir, there's really no point
in having to calculate the number of directory links. Some on-disk
filesystems don't even store the number of links for directories.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL
This also fixes a compile warning on 64-bit systems.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/debug.c | 16 ++--
fs/unionfs/union.h |1 +
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git
Erez Zadok wrote:
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
---
fs/unionfs/copyup.c | 102 +-
1 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
index 23ac4c8..e3c5f15 100644
---
kernel learner wrote:
Hi,
ext3 filesystem has 32-bit block address and ext4 filesystem has
48-bit block address. If a user installs ext4, how will the file
system handle already existing block with 32 bit values?
Why should it ?
thats what ext3 is for.
your kernel can have both FS's
50 matches
Mail list logo