10 Sep, 2005

2 commits

  • This patch modifies ext2 to call the inode_init_security LSM hook to obtain
    the security attribute for a newly created inode and to set the resulting
    attribute on the new inode. This parallels the existing processing for
    setting ACLs on newly created inodes.

    Signed-off-by: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Smalley
     
  • Update the file systems in fs/ implementing a delete_inode() callback to
    call truncate_inode_pages(). One implementation note: In developing this
    patch I put the calls to truncate_inode_pages() at the very top of those
    filesystems delete_inode() callbacks in order to retain the previous
    behavior. I'm guessing that some of those could probably be optimized.

    Signed-off-by: Mark Fasheh
    Acked-by: Christoph Hellwig
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Fasheh
     

08 Sep, 2005

1 commit

  • If /etc/mtab is a regular file all of the mount options (of a file system)
    are written to /etc/mtab by the mount command. The quota tools look there
    for the quota strings for their operation. If, however, /etc/mtab is a
    symlink to /proc/mounts (a "good thing" in some environments) the tools
    don't write anything - they assume the kernel will take care of things.

    While the quota options are sent down to the kernel via the mount system
    call and the file system codes handle them properly unfortunately there is
    no code to echo the quota strings into /proc/mounts and the quota tools
    fail in the symlink case.

    The attached patchs modify the EXT[2|3] and JFS codes to add the necessary
    hooks. The show_options function of each file system in these patches
    currently deal with only those things that seemed related to quotas;
    especially in the EXT3 case more can be done (later?).

    Jan Kara also noted the difficulty in moving these changes above the FS
    codes responding similarly to myself to Andrew's comment about possible
    VFS migration. Issue summary:

    - FS codes have to process the entire string of options anyway.

    - Only FS codes that use quotas must have a show_options function (for
    quotas to work properly) however quotas are only used in a small number
    of FS.

    - Since most of the quota using FS support other options these FS codes
    should have the a show_options function to show those options - and the
    quota echoing becomes virtually negligible.

    Based on feedback I have modified my patches from the original:

    JFS a missing patch has been restored to the posting
    EXT[2|3] and JFS always use the show_options function
    - Each FS has at least one FS specific option displayed
    - QUOTA output is under a CONFIG_QUOTA ifdef
    - a follow-on patch will add a multitude of options for each FS
    EXT[2|3] and JFS "quota" is treated as "usrquota"
    EXT3 journalled data check for journalled quota removed
    EXT[2|3] mount when quota specified but not compiled in

    - no changes from my original patch. I tested the patch and the codes
    warn but

    - still mount. With all due respection I believe the comments
    otherwise were a

    - misread of the patch. Please reread/test and comment. XFS patch
    removed - the XFS team already made the necessary changes EXT3 mixing
    old and new quotas are handled differently (not purely exclusive)

    - if old and new quotas for the same type are used together the old
    type is silently depricated for compatability (e.g. usrquota and
    usrjquota)

    - mixing of old and new quotas is an error (e.g. usrjquota and
    grpquota)

    Signed-off-by: Mark Bellon
    Acked-by: Dave Kleikamp
    Cc: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Bellon
     

20 Aug, 2005

1 commit

  • This bug could cause oopses and page state corruption, because ncpfs
    used the generic page-cache symlink handlign functions. But those
    functions only work if the page cache is guaranteed to be "stable", ie a
    page that was installed when the symlink walk was started has to still
    be installed in the page cache at the end of the walk.

    We could have fixed ncpfs to not use the generic helper routines, but it
    is in many ways much cleaner to instead improve on the symlink walking
    helper routines so that they don't require that absolute stability.

    We do this by allowing "follow_link()" to return a error-pointer as a
    cookie, which is fed back to the cleanup "put_link()" routine. This
    also simplifies NFS symlink handling.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

28 Jul, 2005

3 commits


16 Jul, 2005

1 commit

  • This patch includes feedback from Andrew and Christoph. Thanks for
    taking time to review.

    Use of empty_zero_page was eliminated to fix compilation for architectures
    that don't have it.

    This patch removes setting pages up-to-date in ext2_get_xip_page and all
    bug checks to verify that the page is indeed up to date. Setting the page
    state on mapping to userland is bogus. None of the code patchs involved
    with these pages in mm cares about the page state.

    still on my ToDo list: identify a place outside second extended where
    __inode_direct_access should reside

    Signed-off-by: Carsten Otte
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carsten Otte
     

13 Jul, 2005

1 commit


24 Jun, 2005

3 commits

  • This patch reworks filemap_xip.c with the goal to reduce code duplication
    from mm/filemap.c. It applies agains 2.6.12-rc6-mm1. Instead of
    implementing the aio functions, this one implements the synchronous
    read/write functions only. For readv and writev, the generic fallback is
    used. For aio, we rely on the application doing the fallback. Since our
    "synchronous" function does memcpy immediately anyway, there is no
    performance difference between using the fallbacks or implementing each
    operation.

    Signed-off-by: Carsten Otte
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carsten Otte
     
  • These are the ext2 related parts. Ext2 now uses the xip_* file operations
    along with the get_xip_page aop when mounted with -o xip.

    Signed-off-by: Carsten Otte
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Carsten Otte
     
  • This file duplicates , using slightly different
    names.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

17 Apr, 2005

3 commits

  • Whilst trying to stress test a Promise SX8 card, we stumbled across
    some nasty filesystem corruption in ext2. Our tests involved
    creating an ext2 partition, mounting, running several concurrent
    fsx's over it, umounting, and fsck'ing, all scripted[1]. The fsck
    would always return with errors.

    This regression was traced back to a change between 2.6.9 and
    2.6.10, which moves the functionality of ext2_put_inode into
    ext2_clear_inode. The attached patch reverses this change, and
    eliminated the source of corruption.

    Mingming Cao said:

    I think his patch for ext2 is correct. The corruption on ext3 is not the same
    issue he saw on ext2. I believe that's the race between discard reservation
    and reservation in-use that we already fixed it in 2.6.12- rc1.

    For the problem related to ext2, at the time when we design reservation for
    ext3, we decide we only need to discard the reservation at the last file
    close, so we have ext3_discard_reservation on iput_final- >ext3_clear_inode.

    The ext2 handle discard preallocation differently at that time, it discard the
    preallocation at each iput(), not in input_final(), so we think it's
    unnecessary to thrash it so frequently, and the right thing to do, as we did
    for ext3 reservation, discard preallocation on last iput(). So we moved the
    ext2_discard_preallocation from ext2_put_inode(0 to ext2_clear_inode.

    Since ext2 preallocation is doing pre-allocation on disk, so it is possible
    that at the unmount time, someone is still hold the reference of the inode, so
    the preallocation for a file is not discard yet, so we still mark those blocks
    allocated on disk, while they are not actually in the inode's block map, so
    fsck will catch/fix that error later.

    This is not a issue for ext3, as ext3 reservation(pre-allocation) is done in
    memory.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernard Blackham
     
  • )

    From: Andreas Gruenbacher

    ext[23]_get_acl will return an error when reading the attribute fails or
    out-of-memory occurs. Catch this case.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    akpm@osdl.org
     
  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds