04 Dec, 2008

1 commit


28 Nov, 2008

1 commit

  • udf_clear_inode() can leave behind buffers on mapping's i_private list (when
    we truncated preallocation). Call invalidate_inode_buffers() so that the list
    is properly cleaned-up before we return from udf_clear_inode(). This is ugly
    and suggest that we should cleanup preallocation earlier than in clear_inode()
    but currently there's no such call available since drop_inode() is called under
    inode lock and thus is unusable for disk operations.

    Signed-off-by: Jan Kara

    Jan Kara
     

14 Nov, 2008

1 commit

  • Wrap access to task credentials so that they can be separated more easily from
    the task_struct during the introduction of COW creds.

    Change most current->(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

    Change some task->e?[ug]id to task_e?[ug]id(). In some places it makes more
    sense to use RCU directly rather than a convenient wrapper; these will be
    addressed by later patches.

    Signed-off-by: David Howells
    Reviewed-by: James Morris
    Acked-by: Serge Hallyn
    Acked-by: Jan Kara
    Signed-off-by: James Morris

    David Howells
     

23 Oct, 2008

2 commits


14 Oct, 2008

1 commit

  • This is a much better version of a previous patch to make the parser
    tables constant. Rather than changing the typedef, we put the "const" in
    all the various places where its required, allowing the __initconst
    exception for nfsroot which was the cause of the previous trouble.

    This was posted for review some time ago and I believe its been in -mm
    since then.

    Signed-off-by: Steven Whitehouse
    Cc: Alexander Viro
    Signed-off-by: Linus Torvalds

    Steven Whitehouse
     

09 Sep, 2008

1 commit

  • UDF currently doesn't set a llseek method for regular files, which
    means it will fall back to default_llseek. This means no one can seek
    beyond 2 Gigabytes on udf, and that there's not protection vs
    the i_size updates from writers.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jan Kara

    Christoph Hellwig
     

19 Aug, 2008

2 commits

  • I case we failed to allocate memory for inode when creating it, we did not
    properly free block already allocated for this inode. Move memory allocation
    before the block allocation which fixes this issue (thanks for the idea go to
    Ingo Oeser ). Also remove a few superfluous
    initializations already done in udf_alloc_inode().

    Reviewed-by: Ingo Oeser
    Signed-off-by: Jan Kara

    Jan Kara
     
  • A memory allocation inside alloc_mutex must not recurse back into the
    filesystem itself because that leads to lock inversion between iprune_mutex and
    alloc_mutex (and thus to deadlocks - see traces below). alloc_mutex is actually
    needed only to update allocation statistics in the superblock so we can drop it
    before we start allocating memory for the inode.

    tar D ffff81015b9c8c90 0 6614 6612
    ffff8100d5a21a20 0000000000000086 0000000000000000 00000000ffff0000
    ffff81015b9c8c90 ffff81015b8f0cd0 ffff81015b9c8ee0 0000000000000000
    0000000000000003 0000000000000000 0000000000000000 0000000000000000
    Call Trace:
    [] __mutex_lock_slowpath+0x64/0x9b
    [] mutex_lock+0xa/0xb
    [] shrink_icache_memory+0x38/0x200
    [] shrink_slab+0xe3/0x15b
    [] try_to_free_pages+0x221/0x30d
    [] isolate_pages_global+0x0/0x31
    [] __alloc_pages_internal+0x252/0x3ab
    [] cache_alloc_refill+0x22e/0x47b
    [] kmem_cache_alloc+0x3b/0x61
    [] cache_alloc_refill+0x2fe/0x47b
    [] __kmalloc+0x76/0x9c
    [] :udf:udf_new_inode+0x202/0x2e2
    [] :udf:udf_create+0x2f/0x16d
    [] :udf:udf_lookup+0xa6/0xad
    ...
    kswapd0 D ffff81015b9d9270 0 125 2
    ffff81015b903c28 0000000000000046 ffffffff8028cbb0 00000000fffffffb
    ffff81015b9d9270 ffff81015b8f0cd0 ffff81015b9d94c0 000000000271b490
    ffffe2000271b458 ffffe2000271b420 ffffe20002728dc8 ffffe20002728d90
    Call Trace:
    [] __set_page_dirty+0xeb/0xf5
    [] get_dirty_limits+0x1d/0x22f
    [] __mutex_lock_slowpath+0x64/0x9b
    [] mutex_lock+0xa/0xb
    [] :udf:udf_bitmap_free_blocks+0x47/0x1eb
    [] :udf:udf_discard_prealloc+0xc6/0x172
    [] :udf:udf_clear_inode+0x1e/0x48
    [] clear_inode+0x6d/0xc4
    [] dispose_list+0x56/0xee
    [] shrink_icache_memory+0x1d0/0x200
    [] shrink_slab+0xe3/0x15b
    [] kswapd+0x346/0x447
    ...

    Reported-by: Tibor Tajti
    Reviewed-by: Ingo Oeser
    Signed-off-by: Jan Kara

    Jan Kara
     

27 Jul, 2008

1 commit

  • Kmem cache passed to constructor is only needed for constructors that are
    themselves multiplexeres. Nobody uses this "feature", nor does anybody uses
    passed kmem cache in non-trivial way, so pass only pointer to object.

    Non-trivial places are:
    arch/powerpc/mm/init_64.c
    arch/powerpc/mm/hugetlbpage.c

    This is flag day, yes.

    Signed-off-by: Alexey Dobriyan
    Acked-by: Pekka Enberg
    Acked-by: Christoph Lameter
    Cc: Jon Tollefson
    Cc: Nick Piggin
    Cc: Matt Mackall
    [akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
    [akpm@linux-foundation.org: fix mm/slab.c]
    [akpm@linux-foundation.org: fix ubifs]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

24 Jun, 2008

1 commit

  • In some cases it could happen that some block passed test in
    udf_check_anchor_block() even though udf_read_tagged() refused to read it later
    (e.g. because checksum was not correct). This patch makes
    udf_check_anchor_block() use udf_read_tagged() so that the checking is
    stricter.

    This fixes the regression (certain disks unmountable) caused by commit
    423cf6dc04eb79d441bfda2b127bc4b57134b41d.

    Signed-off-by: Tomas Janousek
    Signed-off-by: Jan Kara

    Tomas Janousek
     

16 Jun, 2008

1 commit


09 May, 2008

1 commit


07 May, 2008

2 commits


30 Apr, 2008

1 commit


29 Apr, 2008

1 commit

  • This patch fixes the following build error with UML and gcc 4.3:

    ...
    CC fs/udf/partition.o
    /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/udf/partition.c: In function ‘udf_get_pblock_virt15’:
    /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/udf/partition.c:32: sorry, unimplemented: inlining failed in call to ‘udf_get_pblock’: function body not available
    /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/udf/partition.c:102: sorry, unimplemented: called from here
    make[3]: *** [fs/udf/partition.o] Error 1

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jan Kara

    Adrian Bunk
     

28 Apr, 2008

1 commit

  • Let's use bsize instead.
    fs/udf/namei.c:960:12: warning: symbol 'elen' shadows an earlier one
    fs/udf/namei.c:937:15: originally declared here

    Signed-off-by: Harvey Harrison
    Cc: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

17 Apr, 2008

22 commits