1. 04 Jul, 2003 4 commits
    • Trond Myklebust's avatar
      [PATCH] Use the intents in 'nameidata' to improve NFS close-to-open consistency · 52d1430d
      Trond Myklebust authored
        - Make use of the open intents to improve close-to-open
          cache consistency. Only force data cache revalidation when
          we're doing an open().
      
        - Add true exclusive create to NFSv3.
      
        - Optimize away the redundant ->lookup() to check for an
          existing file when we know that we're doing NFSv3 exclusive
          create.
      
        - Optimize away all ->permission() checks other than those for
          path traversal, open(), and sys_access().
      52d1430d
    • Trond Myklebust's avatar
      [PATCH] Pass 'nameidata' to ->permission() · a574f324
      Trond Myklebust authored
         - Make the VFS pass the struct nameidata as an optional parameter
           to the permission() inode operation.
      
         - Patch may_create()/may_open() so it passes the struct nameidata from
           vfs_create()/open_namei() as an argument to permission().
      
         - Add an intent flag for the sys_access() function.
      a574f324
    • Trond Myklebust's avatar
      [PATCH] Pass 'nameidata' to ->create() · 675b5da0
      Trond Myklebust authored
        - Make the VFS pass the struct nameidata as an optional argument
          to the create inode operation.
        - Patch vfs_create() to take a struct nameidata as an optional
          argument.
      675b5da0
    • Trond Myklebust's avatar
      [PATCH] Add open intent information to the 'struct nameidata' · fc8b427e
      Trond Myklebust authored
       - Add open intent information to the 'struct nameidata'.
       - Pass the struct nameidata as an optional parameter to the
         lookup() inode operation.
       - Pass the struct nameidata as an optional parameter to the
         d_revalidate() dentry operation.
       - Make link_path_walk() set the LOOKUP_CONTINUE flag in nd->flags instead
         of passing it as an extra parameter to d_revalidate().
       - Make open_namei(), and sys_uselib() set the open()/create() intent
         data.
      fc8b427e
  2. 03 Jul, 2003 24 commits
  3. 02 Jul, 2003 12 commits
    • Linus Torvalds's avatar
      The sbp2 driver needs <linux/pci.h>, but didn't include it. It apparently · bf948e74
      Linus Torvalds authored
      used to work due to some random magic indirect include, but broke lately.
      
      Do the obvious fix.
      bf948e74
    • Rusty Russell's avatar
      [PATCH] Make ksoftirqd a normal per-cpu variable. · 3ac57d34
      Rusty Russell authored
      This moves the ksoftirqd pointers out of the irq_stat struct, and uses a
      normal per-cpu variable.  It's not that time critical, nor referenced in
      assembler.  This moves us closer to making irq_stat a per-cpu variable.
      
      Because some archs have hardcoded asm references to offsets in this
      structure, I haven't touched non-x86.  The __ksoftirqd_task field is
      unused in other archs, too.
      3ac57d34
    • Rusty Russell's avatar
      [PATCH] Remove unused __syscall_count · 7b957b78
      Rusty Russell authored
      Noone seems to use __syscall_count.  Remove the field from i386
      irq_cpustat_t struct, and the generic accessor macros.
      
      Because some archs have hardcoded asm references to offsets in this
      structure, I haven't touched non-x86, but doing so is usually
      trivial.
      7b957b78
    • Rusty Russell's avatar
      [PATCH] Per-cpu variable in mm/slab.c · 6f9199b5
      Rusty Russell authored
      Rather trivial conversion.  Tested on SMP.
      6f9199b5
    • Rusty Russell's avatar
      [PATCH] Remove cpu arg from cpu_raise_irq · 26e48e57
      Rusty Russell authored
      The function cpu_raise_softirq() takes a softirq number, and a cpu number,
      but cannot be used with cpu != smp_processor_id(), because there's no
      locking around the pending softirq lists.  Since noone does this, remove
      that arg.
      
      As per Linus' suggestion, names changed:
      	raise_softirq(int nr)
      	cpu_raise_softirq(int cpu, int nr) -> raise_softirq_irqoff(int nr)
      	__cpu_raise_softirq(int cpu, int nr) -> __raise_softirq_irqoff(int nr)
      26e48e57
    • Andrew Morton's avatar
      [PATCH] e100 use-after-free fix · b9d6ea3c
      Andrew Morton authored
      I though Scott had recently merged this but it seems not.  We'll be
      needing this patch if you merge Manfred's page unmapping debug patch.
      b9d6ea3c
    • Andrew Morton's avatar
      [PATCH] Fix cciss hang · 403d24bf
      Andrew Morton authored
      From: Jens Axboe <axboe@suse.de>
      
      It fixes a hang when performing large I/O's.  Has been tested and acked by
      the maintainer, "Wiran, Francis" <francis.wiran@hp.com>.
      403d24bf
    • Andrew Morton's avatar
      [PATCH] Set limits on CONFIG_LOG_BUF_SHIFT · e46e0cf2
      Andrew Morton authored
      From: bert hubert <ahu@ds9a.nl>
      
      Attached patch adds a range check to LOG_BUF_SHIFT and clarifies the
      configuration somewhat.  I managed to build a non-booting kernel because I
      thought 64 was a nice power of two, which lead to the kernel blocking when
      it tried to actually use or allocate a 2^64 buffer.
      e46e0cf2
    • Andrew Morton's avatar
      [PATCH] ext3: fix journal_release_buffer() race · 90153a16
      Andrew Morton authored
      		CPU0				CPU1
      
      	journal_get_write_access(bh)
      	 (Add buffer to t_reserved_list)
      
      					journal_get_write_access(bh)
      					 (It's already on t_reserved_list:
      					  nothing to do)
      
      	 (We decide we don't want to
      	  journal the buffer after all)
      	journal_release_buffer()
      	 (It gets pulled off the transaction)
      
      
      					journal_dirty_metadata()
      					 (The buffer isn't on the reserved
      					  list!  The kernel explodes)
      
      
      Simple fix: just leave the buffer on t_reserved_list in
      journal_release_buffer().  If nobody ends up claiming the buffer then it will
      get thrown away at start of transaction commit.
      90153a16
    • Andrew Morton's avatar
      [PATCH] fix double mmdrop() on exec path · 610a61e0
      Andrew Morton authored
      If load_elf_binary() (and the other binary handlers) fail after
      flush_old_exec() (for example, in setup_arg_pages()) then do_execve() will go
      through and do mmdrop(bprm.mm).
      
      But bprm.mm is now current->mm.  We've just freed the current process's mm.
      The kernel dies in a most ghastly manner.
      
      Fix that up by nulling out bprm.mm in flush_old_exec(), at the point where we
      consumed the mm.  Handle the null pointer in the do_execve() error path.
      
      Also: don't open-code free_arg_pages() in do_execve(): call it instead.
      610a61e0
    • Andrew Morton's avatar
      [PATCH] ext2: inode allocation race fix · 6501a85b
      Andrew Morton authored
      ext2's inode allocator will call find_group_orlov(), which will return a
      suitable blockgroup in which the inode should be allocated.  But by the time
      we actually try to allocate an inode in the blockgroup, other CPUs could have
      used them all up.
      
      ext2 will bogusly fail with "ext2_new_inode: Free inodes count corrupted in
      group NN".
      
      
      To fix this we just advance onto the next blockgroup if the rare race
      happens.  If we've scanned all blockgroups then return -ENOSPC.
      
      
      (This is a bit inaccurate: after we've scanned all blockgroups, there may
      still be available inodes due to inode freeing activity in other blockgroups.
       This cannot be fixed without fs-wide locking.  The effect is a slightly
      early ENOSPC in a nearly-full filesystem).
      6501a85b
    • Andrew Morton's avatar
      [PATCH] Security hook for vm_enough_memory · bc75ac4f
      Andrew Morton authored
      From: Stephen Smalley <sds@epoch.ncsc.mil>
      
      This patch against 2.5.73 replaces vm_enough_memory with a security hook
      per Alan Cox's suggestion so that security modules can completely replace
      the logic if desired.
      
      Note that the patch changes the interface to follow the convention of the
      other security hooks, i.e.  return 0 if ok or -errno on failure (-ENOMEM in
      this case) rather than returning a boolean.  It also exports various
      variables and functions required for the vm_enough_memory logic.
      bc75ac4f