1. 06 Jul, 2003 31 commits
    • Andrew Morton's avatar
      [PATCH] BSD accounting speedup · d24d1d3a
      Andrew Morton authored
      From: Ingo Molnar <mingo@elte.hu>
      
      Most distributions turn on process accounting - but even the common
      'accounting is off' case is horrible SMP-scalability-wise: it accesses a
      global spinlock during every sys_exit() call, which bounces like mad on SMP
      (and NUMA) systems.
      
      (i also got rid of the unused return code.)
      d24d1d3a
    • Andrew Morton's avatar
      [PATCH] display bootserver in /proc/net/pnp · d029f790
      Andrew Morton authored
      From: "lode leroy" <lode_leroy@hotmail.com>
      
      I would like to submit a trivial enhancement to display the ip address of
      the bootserver in /proc/net/pnp
      
      This aids me in developing a diskless linux root image to know where it
      comes from...
      d029f790
    • Andrew Morton's avatar
      [PATCH] Module autoloading for quota · c132f143
      Andrew Morton authored
      From: Jan Kara <jack@suse.cz>
      
      This implements autoloading of quota modules. 
      c132f143
    • Andrew Morton's avatar
      [PATCH] xattr: fine-grained locking · 6abc05cc
      Andrew Morton authored
      From: Andreas Gruenbacher <agruen@suse.de>
      
      This patch removes the dependency on i_sem in the getxattr and
      listxattr iops of ext2 and ext3. In addition, the global ext[23]_xattr
      semaphores go away. Instead of i_sem and the global semaphore, mutual
      exclusion is now ensured by per-inode xattr semaphores, and by locking
      the buffers before modifying them. The detailed locking strategy is
      described in comments in fs/ext[23]/xattr.c.
      
      Due to this change it is no longer necessary to take i_sem in
      ext[23]_permission() for retrieving acls, so the
      ext[23]_permission_locked() functions go away.
      
      Additionally, the patch fixes a race condition in ext[23]_permission:
      Accessing inode->i_acl was protected by the BKL in 2.4; in 2.5 there no
      longer is such protection. Instead, inode->i_acl (and inode->i_default_acl)
      are now accessed under inode->i_lock. (This could be replaced by RCU in
      the future.)
      
      In the ext3 extended attribute code, an new uglines results from locking
      at the buffer head level: The buffer lock must be held between testing
      if an xattr block can be modified and the actual modification to prevent
      races from happening. Before a block can be modified,
      ext3_journal_get_write_access() must be called. But this requies an unlocked
      buffer, so I call ext3_journal_get_write_access() before locking the
      buffer. If it turns out that the buffer cannot be modified,
      journal_release_buffer() is called. Calling ext3_journal_get_write_access
      after the test but while the buffer is still locked would be much better.
      6abc05cc
    • Andrew Morton's avatar
      [PATCH] xattrr: preparation for fine-grained locking · 430cab6d
      Andrew Morton authored
      From: Andreas Gruenbacher <agruen@suse.de>
      
      Andrew Morton found that there is lock contention between extended
      attribute operations (like reading ACLs, which `ls -l' needs to do)
      and other operations on the same files. This is due to the fact that
      all extended attribute syscalls take inode->i_sem before calling into
      the filesystem code.
      
      To fix this problem, this patch no longer takes inode->i_sem in the
      getxattr and listxattr syscalls, and moves the lock taking code into
      the file systems. (Another patch improves the locking strategy in
      ext2 and ext3.)
      430cab6d
    • Andrew Morton's avatar
      [PATCH] xattr: update-in-place optimisation · a39afa31
      Andrew Morton authored
      From: Andreas Gruenbacher <agruen@suse.de>
      
      It is common to update extended attributes without changing the value's
      length. This patch optimizes this case. In addition to that, the current
      code tries to recognize early when extended attribute blocks become
      empty. This optimization is not of significant value, so this patch
      removes it, and moves the empty block test further down.
      a39afa31
    • Andrew Morton's avatar
      [PATCH] xattr: blockdev inode selection fix · 3edb027f
      Andrew Morton authored
      From: Andreas Gruenbacher <agruen@suse.de>
      
      The inode->i_bdev field is not the same as inode->i_sb->s_bdev or bh->b_bdev.
      We must compare inode->i_sb->s_bdev with bh->b_bdev, or else equal extended
      attribute block will not be found.
      3edb027f
    • Andrew Morton's avatar
      [PATCH] xattr: cleanups · 574dd596
      Andrew Morton authored
      From: From: Andreas Gruenbacher <agruen@suse.de>
      
      * Various minor cleanups and simplifications in the extended attributes
        and acl code.
      
      * Use a smarter shortcut rule in ext[23]_permission(): If the mask
        contains permissions that are not also contained in the group
        file mode permission bits, those permissions can never be granted by
        an acl. (The previous shortcut rule was more coarse.)
      574dd596
    • Andrew Morton's avatar
      [PATCH] proc_attr_lookup() fix · c3087712
      Andrew Morton authored
      From: Daniele Belluci <bellucda@tiscali.it>
      
      proc_attr_lookup() was missed out in Trond's conversion.  (It is behind
      CONFIG_SECURITY).
      c3087712
    • Andrew Morton's avatar
      [PATCH] breadahead() tweaks · 0b453423
      Andrew Morton authored
      - use ll_rw_block().
      
      - use READA
      
      - export it to modules.
      0b453423
    • Andrew Morton's avatar
      [PATCH] misc fixes · 114e04f2
      Andrew Morton authored
      - xfs printk warning fix (dev_t is ulong on ppc64)
      
      - unused var in serial_remove() (Daniele Bellucci <bellucda@tiscali.it>)
      114e04f2
    • Andrew Morton's avatar
      [PATCH] use task_cpu() not ->thread_info->cpu in sched.c · 8ffcb67a
      Andrew Morton authored
      From: Mikael Pettersson <mikpe@csd.uu.se>
      
      This patch fixes two p->thread_info->cpu occurrences in kernel/sched.c to
      use the task_cpu(p) macro instead, which is optimised on UP.  Although one
      of the occurrences is under #ifdef CONFIG_SMP, it's bad style to use the
      raw non-optimisable form in non-arch code.
      8ffcb67a
    • Linus Torvalds's avatar
      Fix several broken macros to get the "private" field of a seq-file · 1e8bb0c5
      Linus Torvalds authored
      in the networking code.
      
      From YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      1e8bb0c5
    • Greg Ungerer's avatar
      [PATCH] flat loader v850 specific support abstracted · 40d98fd3
      Greg Ungerer authored
      Architecture specific flat loader code for v850 moved into its
      own v850 flat.h header. This patch also adds supporti for a number
      of relocation cases that need to be handled at laod time.
      
      Most of this code is originally from Miles Bader <miles@gnu.org>.
      40d98fd3
    • Greg Ungerer's avatar
      [PATCH] flat loader m68knommu specific support abstracted · cb04237b
      Greg Ungerer authored
      Architecture specific flat loader code for m68knommu moved into its
      own m68knommu flat.h header. Part of the shared library flat loader
      update.
      cb04237b
    • Greg Ungerer's avatar
      [PATCH] flat loader H8/300 specific support abstracted · 2253b09e
      Greg Ungerer authored
      Architecture specific flat loader code for H8/300 moved into its
      own H8/300 flat.h header.
      2253b09e
    • Greg Ungerer's avatar
      [PATCH] shared library support for MMUless binfmt_flat loader · 3d97dc2d
      Greg Ungerer authored
      This patch adds shared library support to the MMU application
      loader, binfmt_flat. This is not new, it is a forward port from the
      same support in 2.4.x kernels with MMUless support, and has been
      running for well over a year now. The code support is conditionally
      compiled on CONFIG_BINFMT_FLAT_SHARED. This change also abstracts
      a bit more architecture dependent code into the separate flat.h
      includes.
      
      Basically relocations within an application also carry a tag to
      identify what they refer too (this code or which shared library).
      This is patched as before at load/run-time with an appropriate
      address.
      3d97dc2d
    • Greg Ungerer's avatar
      [PATCH] simplify access_ok() for all m68knommu targets · ca6abe4c
      Greg Ungerer authored
      Unify access_ok for all m68knommu targets. All targets use the
      common linker script and have common end symbols. So now we can
      just use a simple check.
      ca6abe4c
    • Greg Ungerer's avatar
      [PATCH] remove unused register from clobber list in down_trylock() · 5b0a7205
      Greg Ungerer authored
      Remove "%d0" register from clobber list of down_trylock() for
      m68knommu. It is not used by the asm code here at all.
      5b0a7205
    • Greg Ungerer's avatar
      [PATCH] force PAGE_SIZE to be an unsigned long · abba5925
      Greg Ungerer authored
      Force PAGE_SIZE for the m68knommu architecture to be an unsigned long.
      This makes it consistent with all other architectures and cleans up
      a load of compiler warnings.
      abba5925
    • Greg Ungerer's avatar
      [PATCH] conditional ROMfs copy for Motorola M5307C3 board · bb47ba3b
      Greg Ungerer authored
      Conditionally copy the ROMfs filesystem on the Motorola M5307C3
      target board only if using a ROMfs.
      bb47ba3b
    • Greg Ungerer's avatar
      [PATCH] selection of boot parameters at configure time for Motorola 5282 targets · fd83c5ed
      Greg Ungerer authored
      Allow setting boot time parameters at configuration for Motorola
      5282 targets.
      fd83c5ed
    • Linus Torvalds's avatar
      Simplify and speed up mmap read-around handling · 82a333fa
      Linus Torvalds authored
      This improves cold-cache program startup noticeably for me, and
      simplifies the read-ahead logic at the same time. The rules for
      read-ahead are:
      
       - if the vma is marked random, we just do the regular one-page case. 
         Obvious.
      
       - if the vma is marked "linear access", we use the regular readahead
         code. No change in behaviour there (well, we also only consider it a 
         _miss_ if it was marked linear access - the "readahead" and
         "readaround"  things are now totally independent of each other)
      
       - otherwise, we look at how many hits/misses we've had for this 
         particular file open for mmap, and if we've had noticeably more
         misses than hits, we don't bother with read-around.
      
      In particular, this means that the "real" read-ahead logic literally
      only needs to worry about finding sequential accesses, and does not
      have to worry about the common executable mmap access patthers that 
      have very different behaviour.
      
      Some constant tweaking may be a good idea.
      82a333fa
    • Ingo Molnar's avatar
      [PATCH] another timer overflow thing · e939c913
      Ingo Molnar authored
      in add_timer_internal() we simply leave the timer pending forever if the
      expiry is in more than 0xffffffff jiffies. This means more than 48 days on
      eg. ia64 - which is not an unrealistic timeout. IIRC crond is happy to use
      extremely large timeouts.
      
      It's better to time out early (if you can call 48 days "early") than to
      not time out at all.
      e939c913
    • Bernardo Innocenti's avatar
      [PATCH] Fix do_div() for all architectures · f0a8aa74
      Bernardo Innocenti authored
      This offers a generic do_div64() that actually does the right thing,
      unlike some architectures that "optimized" the 64-by-32 divide into
      just a 32-bit divide.
      
      Both ppc and sh were already providing an assembly optimized
      __div64_32().  I called my function the same, so that their optimized
      versions will automatically override mine in lib.a.
      
      I've only tested extensively on m68knommu (uClinux) and made
      sure generated code is reasonably short. Should be ok also on
      parisc, since it's the same algorithm they were using before.
      
       - add generic C implementations of the do_div() for 32bit and 64bit
         archs in asm-generic/div64.h;
      
       - add generic library support function __div64_32() to handle the
         full 64/32 case on 32bit archs;
      
       - kill multiple copies of generic do_div() in architecture
         specific subdirs. Most copies were either buggy or not doing
         what they were supposed to do;
      
       - ensure all surviving instances of do_div() have their parameters
         correctly parenthesized to avoid funny side-effects;
      f0a8aa74
    • Paul Fulghum's avatar
      [PATCH] synclink_cs.c update · a6a6977c
      Paul Fulghum authored
      Fix arbitration between net open and tty open.
      
      Cleanup missed bits of CUA device removal changes.
      a6a6977c
    • Paul Fulghum's avatar
      [PATCH] synclinkmp.c update · d4188a26
      Paul Fulghum authored
      Fix arbitration between net open and tty open.
      
      Clean up unused locals resulting from latest tty changes.
      d4188a26
    • Paul Fulghum's avatar
      [PATCH] synclink.c update · 47dba812
      Paul Fulghum authored
      Fix arbitration between net open and tty open.
      
      Cleanup unused local resulting from latest tty changes.
      47dba812
    • Benjamin Herrenschmidt's avatar
      [PATCH] fix IDE init oops on PowerMac · db15ad85
      Benjamin Herrenschmidt authored
      From Mikael Petterson:
      
      
        Booting kernel 2.5.74 on a PowerMac with CONFIG_BLK_DEV_IDE_PMAC=y
        results in an oops during IDE init, and the box then reboots.
      
        The patch below updates drivers/ide/ppc/pmac.c to also set up the
        hwif->ide_dma_queued_off and hwif->ide_dma_queued_on function
        pointers, which fixes the oops. Tested on my ancient PM4400.
      db15ad85
    • Pavel Machek's avatar
      [PATCH] New maintainter for nbd · 16cde048
      Pavel Machek authored
      I no longer have the time/interest in nbd, and Paul agreed to take it
      over.
      16cde048
    • Anton Blanchard's avatar
      [PATCH] enable device mapper in compat layer · e4c67754
      Anton Blanchard authored
      The compat ioctls for device mapper were not being enabled due to an
      incorrect config option.
      e4c67754
  2. 05 Jul, 2003 9 commits
    • Andrew Morton's avatar
      [PATCH] Improve mmap readaround · 99fb27c6
      Andrew Morton authored
      This tweaks the mmap read-ahead behaviour so that the prefaulting
      is largely pointless.
      
       - double the minimum readaround chunksize in page_cache_readaround().
      
       - when a seek is detected, collapse the window more slowly.
      99fb27c6
    • Krzysztof Halasa's avatar
      2d3160cc
    • Andrew Morton's avatar
      [PATCH] i2o_scsi build fix · 71ac7ef2
      Andrew Morton authored
      i2o_scsi.c now needs pci.h.
      71ac7ef2
    • Andrew Morton's avatar
      [PATCH] fix rfcomm oops · 92be328b
      Andrew Morton authored
      From: ilmari@ilmari.org (Dagfinn Ilmari Mannsaker)
      
      It turns out that net/bluetooth/rfcomm/sock.c (and
      net/bluetooth/hci_sock.c) had been left out when net_proto_family gained an
      owner field, here's a patch that fixes them both.
      92be328b
    • Andrew Morton's avatar
      [PATCH] MTD build fix for old gcc's · 090a3c7b
      Andrew Morton authored
      From: junkio@cox.net
      
      Sigh.  Is there a gcc option to tell it to not accept this incompatible C99
      extension?
      090a3c7b
    • Andrew Morton's avatar
      [PATCH] fix current->user->__count leak · 7fc4c64b
      Andrew Morton authored
      From: Arvind Kandhare <arvind.kan@wipro.com>
      
      When switch_uid is called, the reference count of the new user is
      incremented twice.  I think the increment in the switch_uid is done because
      of the reparent_to_init() function which does not increase the __count for
      root user.
      
      But if switch_uid is called from any other function, the reference count is
      already incremented by the caller by calling alloc_uid for the new user.
      Hence the count is incremented twice.  The user struct will not be deleted
      even when there are no processes holding a reference count for it.  This
      does not cause any problem currently because nothing is dependent on timely
      deletion of the user struct.
      7fc4c64b
    • Andrew Morton's avatar
      [PATCH] epoll: microoptimisations · 0d98604b
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      - Inline eventpoll_release() so that __fput() does not need to call in
        epoll code if the file itself is not registered inside an epoll fd
      
      - Add <linux/types.h> inclusion due __u32 and __u64 usage
      
      - Fix debug printf that would otherwise panic if enabled with the new
        epoll code
      0d98604b
    • Andrew Morton's avatar
      [PATCH] bootmem.c cleanups · 1c630a8d
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      - Remove a couple of impossible debug checks (unsigneds cannot be
        negative!)
      
      - If __alloc_bootmem_core() fails with a goal and unaligned node_boot_start
        it'll loop fovever.
      1c630a8d
    • Andrew Morton's avatar
      [PATCH] after exec_mmap(), exec cannot fail · 12c1bf07
      Andrew Morton authored
      If de_thread() fails in flush_old_exec() then we try to fail the execve().
      
      That is a bad move, because exec_mmap() has already switched the current
      process over to the new mm.  The new process is not yet sufficiently set up
      to handle the error and the kernel doublefaults and dies.  exec_mmap() is the
      point of no return.
      
      Change flush_old_exec() to call de_thread() before running exec_mmap() so the
      execing program sees the error.  I added fault injection to both de_thread()
      and exec_mmap() - everything now survives OK.
      12c1bf07