1. 11 Jul, 2004 11 commits
    • David Howells's avatar
      [PATCH] intrinsic automount and mountpoint degradation support · c8a6ba01
      David Howells authored
      Here's a patch that I worked out with Al Viro that adds support for a
      filesystem (such as kAFS) to perform automounting intrinsically without the
      need for a userspace daemon.  It also adds support for such mountpoints to be
      degraded at the filesystem's behest until they've been untouched long enough
      that they'll be removed.
      
      I've a patch (to follow) that removes some #ifdef's from fs/afs/* thus
      allowing it to make use of this facility.
      
      There are five pieces to this:
      
       (1) Any interested filesystem needs to have at least one list to which
           expirable mountpoints can be added.
      
           Access to this list is governed by the vfsmount_lock.
      
       (2) When a filesystem wants to create an expirable mount, it calls
           do_kern_mount() to get a handle on the filesystem it wants mounting, and
           then calls do_add_mount() to mount that filesystem on the designated
           mountpoint, supplying the list mentioned in (1) to which the vfsmount
           will be added.
      
           In kAFS's case, the mountpoint is a directory with a follow_link() method
           defined (fs/afs/mntpt.c). This uses the struct nameidata supplied as an
           argument as a determination of where the new filesystem should be
           mounted.
      
       (3) When something using a vfsmount finishes dealing with it, it calls
           mntput(). This unmarks the vfsmount for immediate expiry.
      
           There are two criteria for determining if a vfsmount may be expired - it
           mustn't be marked as in use for anything other than being a child of
           another vfsmount, and it must have an expiry mark against it already.
      
       (4) The filesystem then determines the policy on expiring the mounts created
           in (2). When it feels the need to, it passes the list mentioned in (1) to
           mark_mounts_for_expiry() to request everything on the list be expired.
      
           This function examines each mount listed. If the vfsmount meets the
           criteria mentioned in (3), then the vfsmount is deleted from the
           namespace and disposed of as for unmounting; otherwise the vfsmount is
           left untouched apart from now bearing an expiration mark if it didn't
           before.
      
           kAFS's expiration policy is simply to invoke this process at regular
           intervals for all the mounts on its list.
      
       (5) An expiration facility is also provided to userspace: by calling umount()
           with a MNT_EXPIRE flag, it can make a request to unmount only if the
           mountpoint hasn't been used since the last request and isn't in use now.
      
           This allows expiration to be driven by userspace instead of by the
           kernel if that is desirable.
      
           This also means that do_umount() has to use a different version of
           path_release() to everyone else... it can't call mntput() as that clears
           the expiration flag, thus rendering this unachievable; so it's version of
           path_release() calls _mntput(), which doesn't do the clear.
      
      My original idea was to give the kernel more knowledge of automounted
      things. This avoids a certain problem with stat() on a mountpoint causing it
      to mount (for example, do "ls -l /afs" on a machine with kAFS), but Al wanted
      it done this way.
      
      > Why is autofs unsuitable?
      
      Because:
      
       (1) Autofs is flat; AFS requires a tree - mounts on mounts on mounts on
           mounts...
      
       (2) AFS holds the data as to what the mountpoints are and where they go, and
           these may be cross-links to subtrees beyond your control. It's also not
           trivial to extract a list of mountpoints as is required for autofs.
      
       (3) Autofs is not namespace safe.
      
       (4) Ducking back to userspace to get that to do the mount is pretty tricky if
           namespaces are involved.
      
      In fact, autofs may well want to make use of this facility.
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c8a6ba01
    • Brian Gerst's avatar
      [PATCH] kbuild: sort modules for modpost and modinst · 694effe7
      Brian Gerst authored
      Process modules in sorted order during modpost and modules install.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      694effe7
    • Brian Gerst's avatar
      [PATCH] kbuild: clean up module install rules · 5cfce896
      Brian Gerst authored
      Consolidate rules for installing internal and external modules.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      5cfce896
    • Paul Mackerras's avatar
      [PATCH] ppc64: update lparcfg to use seq_file · 43610b32
      Paul Mackerras authored
      From: Will Schmidt <willschm@us.ibm.com>
      
      This patch includes updates and cleanup for the PPC64 proc/lparcfg interface.
           - use seq_file's seq_printf for output
           - remove redundant e2a function. (use viopath.c's instead)
           - change to Kconfig to allow building as a module.
           - export required symbols from LparData.c
      
          Pass # 2 updates..
            - Per Pauls request I've removed the vpurr references, and left
      	just a stub function get_purr().
            - this should apply clean to latest linus tree.  (test-applied against
      	2.6.7-rc3).
      
          Pass # 3 updates...
            - Correcting my previously incorrect description of the
      	lparcfg_count_active_processors() function..
      	This is for the cases where we have some number of virtual
      	processors that are different than the total number of threads
      	in the system.  (i.e. systemcfg->processorcount isnt the desired
      	value for partition_active_processors)
            - moved e2a function into its own file in arch/ppc64/lib.
            - changed lparcfg_count_active_processors() to use a while loop
      	instead of a for loop.
            - removed redundant of_node_put in lparcfg_count_active_processors().
            - removed unneeded parms from get-system-parameter rtas_call.
      Signed-off-by: default avatarWill Schmidt <willschm@us.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      43610b32
    • Paul Mackerras's avatar
      [PATCH] ppc64: enable EEH on PCI host bridges · bade7631
      Paul Mackerras authored
      On recent pSeries systems, EEH needs to be enabled even on PCI Host Bridges
      (PHB's).  If not enabled, then ordinary PCI probing (config-space
      reads/writes to the bridges) will generate firmware error messages,
      possibly a very large number of messages for systems with large numbers of
      pci slots.
      Signed-off-by: default avatarLinas Vepstas <linas@linas.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bade7631
    • Paul Mackerras's avatar
      [PATCH] ppc64: fix unbalanced dev_get/put calls in EEH code · 6441582c
      Paul Mackerras authored
      This patch fixes some unbalanced usage of pci_dev_get()/pci_dev_put() calls
      in the eeh code.  The old code had too many calls to dev_put, which could
      cause memory structs to be freed prematurely, possibly leading to bad bad
      pointer derefs in certain cases.
      Signed-off-by: default avatarLinas Vepstas <linas@linas.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6441582c
    • Anton Blanchard's avatar
      [PATCH] ppc64: uninline some user copy routines · 69867f86
      Anton Blanchard authored
      gcc 3.5 is complaining about the size of copy_from_user.  It turns out it
      is rather large and putting it out of line saves us about 30kB on a default
      kernel build.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      69867f86
    • Kumar Gala's avatar
      [PATCH] ppc32: CPM UART fixes · 3b78f5c5
      Kumar Gala authored
      Here is a patch to fix some bugs with the current CPM UART code, Tom Rini
      has seen this and ok'd it.
      
      * Fixes need to config both SMC1 & SCC1
      * Fixes buffer descriptor wrapping issue in set_termios
      * Fixes confusion in Kconfig regarding CPM1 vs CPM2
      Signed-off-by: default avatarKumar Gala <kumar.gala@freescale.com>
      Signed-off-by: default avatarPantelis Antoniou <panto@intracom.gr>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3b78f5c5
    • Olaf Hering's avatar
      [PATCH] ppc32: serial console autodetection · fab5ef07
      Olaf Hering authored
      We have something like this in our kernel since many months.  It sets the
      console device to what OF uses.  ppc64 does the same, and it works ok.
      serial is found on CHRP, ch-a is used on all powermacs.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      fab5ef07
    • Jan Kara's avatar
      [PATCH] quota: inode->i_flags locking fixes · 7f0fdc5d
      Jan Kara authored
      The patch fixes locking of i_flags.  It removes S_QUOTA flag from i_flags
      because it was almost unused and updating it on some places correctly
      (under i_sem) would be tricky.  Note that accessing of S_NOQUOTA flag is
      serialized by dqptr_sem and so we can reliably tested without i_sem.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7f0fdc5d
    • Russell King's avatar
      [ARM] Fix two bugs in Acorn expansion card subsystem · 97e5cc05
      Russell King authored
      - Setup synchronous expansion card resource.
      - Fix order of IRQ and FIQ mask/offsets.
      97e5cc05
  2. 10 Jul, 2004 2 commits
  3. 08 Jul, 2004 2 commits
    • Russell King's avatar
      Back out smc91x late collision "performance" hack. · 372b616b
      Russell King authored
      Apparantly, the reason for this change is that it gives "much less
      NFS stalls with a SMC91C96 on a 10/100MB switch."
      
      Alan Cox's comments on this is:
      "spec says 16 collision retries max _ever_.  I bet his 'broken
      switch' is a case of half v full duplex" and a recommendation to
      remove it.
      
      Also, since the change does not limit the number of times we may
      retry to send the packet, I think this code opens a potential DoS
      attack against network which has a machine connected running this
      code.
      372b616b
    • John Lenz's avatar
      [ARM PATCH] 1937/1: LoCoMo common device · 9fd1d0c7
      John Lenz authored
      Patch from John Lenz
      
      Cleanup and forward port of patch 1849.
      This patch provides support for the SHARP LoCoMo device, 
      a companion chip similar to the sa1111 device.  It is present
      in many of the SHARP Zaurus line of PDAs.
      9fd1d0c7
  4. 06 Jul, 2004 25 commits