1. 20 May, 2003 37 commits
    • Alexander Viro's avatar
      [PATCH] O_DIRECT open() fix · a45a6dde
      Alexander Viro authored
      Trivial bugfix: opening a file that doesn't have ->direct_IO() with
      O_DIRECT passed in flags fails (as it should) but doesn't call
      ->release() even though ->open() had been successful.
      
      IOW, we have a leak there - e.g.  open() of a tty with O_DIRECT will
      leak a reference to tty and tty_driver.  Besides, quite a few drivers
      are _not_ happy with struct file being freed without ->release() after
      ->open() has returned 0.
      a45a6dde
    • Alexander Viro's avatar
      [PATCH] seq_path() for /proc/pid/maps · 2d9318a1
      Alexander Viro authored
      This converts /proc/pid/maps to use of seq_file, cleans the issues with
      d_path() overflows as a side effect.
      
      It's incremental to seq_path() patch.
      2d9318a1
    • Alexander Viro's avatar
      [PATCH] seq_path(), /proc/mounts and /proc/swaps · 32ccd2b6
      Alexander Viro authored
      This adds a new seq_...() helper:
      
         seq_path(seq_file, mnt, dentry, escape)
      
      It spits the pathname into seq_file, does octal escapes for given set of
      characters, returns the number of characters it'd produced or -1 in case
      of error.  Long names are handled gracefully - you don't need anything
      to do, generic seq_file logics will do the right thing.
      
      /proc/mounts and /proc/swaps are converted to use of seq_path(), some
      junk removed.
      
      /proc/pid/maps will be converted next.
      32ccd2b6
    • Neil Brown's avatar
      [PATCH] kNFSd: Allow request for nfsv4 pseudo root to perform an upcall. · ecdb3063
      Neil Brown authored
      Most cache-lookups to find export information will cause
      an upcall, but currently the lookup to find the pseudo root
      for nfsv4 wont asthe  cache-handle isn't made available.
      This patch makes it available and makes sure that if the
      upcall is made, the request is dropped (for now).
      ecdb3063
    • Neil Brown's avatar
      [PATCH] kNFSd: NFSv4 open share state patch · 448d25b8
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      
      this open share state patch creates all the structures and hash tables needed
      to create and destroy share state on OPEN.
      
      a struct nfs4_stateowner is introduced. this is currently only used for share
      state, but will also be used as an anchor for byte-range lock state. e.g. it
      will be either an (open)stateowner or a (lock)stateower.
      
      a struct nfs4_stateid is introduced with holds stateid info for openfiles per
      (open)stateowner. this struct will also hold byte-range lock info for
      (lock)stateowners.
      
      ownerstr_hashtbl[] holds nfs4_stateowners hashed by the nfs4_open owner and
      clientid, and is used to lookup nfs4_stateowners on OPEN.
      
      a struct nfs4_file is introduced which holds info on open files with state.
      
      file_hashtbl[] holds nfs4_files, and is used to find a file in order to search
      for conflicting share locks on OPEN. delegation info will hang off the
      nf4_file struct.
      
      i moved nfsd4_process_open1() into nfs4state.c, and added nfs4_process_open2()
      there as well
      
      i've left lease management, state reclaim, and the special replay management
      on sequenceid mutating operations like OPEN for subsequent patches.
      448d25b8
    • Neil Brown's avatar
      [PATCH] kNFSd: Minor rearrangements in NFSv4 server code to prepare for mroe state management. · 9c88ef1f
      Neil Brown authored
      From: "William A.(Andy) Adamson" <andros@citi.umich.edu>
      
      this is the first of several patches against 2.5 concerning NFSv4 state for
      nfsd. it cleans up the names of state structures in preperation for future
      share, lease, byte-range, and delegation patches. specifically, it
      
      1) renames portions of the stateid_t and moves it along with the clientid_t
      from xdr.h into state.h
      
      2) uses xdr_netobj to gather related data and length fields in struct
      nfs4_open (in xdr4.h) (e.g. we have op_fname.data and op_fname.len
      instead of op_name and op_namelen).
      
      3) renames NFSD4_CLIENT_MAXNAME to NFS4_OPAQUE_LIMIT which will be used in
      other state fields (not just for name length)
      9c88ef1f
    • Neil Brown's avatar
    • Neil Brown's avatar
      [PATCH] kNFSd: Make sure an RPC socket is closed immediately when a server write fails. · 667c8992
      Neil Brown authored
      The check for "write was incomplete" is not atomic with the actual write,
      so a second write could slip in after a partial write to a tcp socket
      and this will cause problems.
      
      So we move the locking out a bit, and test if the socket has
      been deleted (SK_DEAD) between getting the lock and trying
      to send.
      667c8992
    • Neil Brown's avatar
      [PATCH] kNFSd: Set SOCK_NOSPACE when RPC server decides there is insufficient. · 4690a87a
      Neil Brown authored
      SOCK_NOSPACE is set, so we must set it when we want to get
      a ->write_space callback.
      4690a87a
    • Neil Brown's avatar
      [PATCH] kNFSd: RPC server need to know that TCP and UDP have different wspace functions. · 9f632054
      Neil Brown authored
      From: Hirokazu Takahashi <taka@valinux.co.jp>
      
      sock_wspace() is used to see how much can be written to a udp socket,
      but tcp_wspace must be used on a tcp socket.
      This patch informs sunrpc/svcsock.c of this subtlety.
      9f632054
    • Neil Brown's avatar
      [PATCH] kNFSd: SVC sockets don't disable Nagle · be4ad944
      Neil Brown authored
      I noticed that the Nagle algorithm was disabled just recently on the
      client side, while it still seems to be enabled on the server side. The
      previous patch came from Chuck Lever.
      
      Below patch disables it on the server side as well. For latency reasons,
      this should be the desired behaviour NFS at both client and server.
      be4ad944
    • Neil Brown's avatar
      [PATCH] kNFSd: TCP nfsd connection hangs when partial record header is received · b07e2e98
      Neil Brown authored
      Below patch resolves a hang where a TCP nfsd connection will hang even
      though new data is received on the socket. We've seen this a few times in
      our lab, but it usually happened every few weeks.
      
      If a short record header is received, the SK_BUSY flag is never cleared,
      and even though new data arrives, it will not be handled. This in turn
      leads to hangs of particular clients (while others will continue to work
      without problem).
      
      I also changed the return code for that condition to be the same as for a
      (regular) short read.
      b07e2e98
    • Linus Torvalds's avatar
      Merge penguin:v2.5/linux · bb37b84a
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      bb37b84a
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/gregkh/linux/linus-2.5 · da94c7b2
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      da94c7b2
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: verbose debugging · 9d698ef9
      Duncan Sands authored
      Add a vdbg macro for verbose debugging, and convert some
      noisy debugging statements to use it.
      9d698ef9
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: receive path micro optimization · a3fe0722
      Duncan Sands authored
      Make the most discriminating comparison first.
      a3fe0722
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: remove useless NULL pointer checks · 2aea7c00
      Duncan Sands authored
      The stats field is never NULL.
      2aea7c00
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in tasklets · 3dfedcfe
      Duncan Sands authored
      Replace spin_lock_irqsave/spin_unlock_irqrestore with
      spin_lock_irq/spin_unlock_irq in tasklet actions, since
      these are always called with local irqs enabled.
      3dfedcfe
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in process context · 704500ef
      Duncan Sands authored
      Replace spin_lock_irqsave/spin_unlock_irqrestore with
      spin_lock_irq/spin_unlock_irq in routines that are only
      called in process context.
      704500ef
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: remove stale code · 916613e7
      Duncan Sands authored
      Should have gone long ago.
      916613e7
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: add defensive memory barriers · cc0df651
      Duncan Sands authored
      Defend against future maintainers.
      cc0df651
    • Duncan Sands's avatar
      [PATCH] USB speedtouch: replace yield() · 2c0f1af0
      Duncan Sands authored
      Use set_current_state (TASK_RUNNING); schedule(); instead.
      2c0f1af0
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.5-rmk · 68494a35
      Linus Torvalds authored
      into penguin.transmeta.com:/home/torvalds/v2.5/linux
      68494a35
    • Russell King's avatar
      [ARM] do_fork() now returns the PID. · f111076d
      Russell King authored
      f111076d
    • James Bottomley's avatar
      [PATCH] do_fork fixes for voyager x86 subarch · 200d702b
      James Bottomley authored
      It looks like the do_fork was converted in voyager_smp.c, but the
      addition of wake_up_forked_process() was missed leading to a boot
      panic.  The attached fixes it.
      200d702b
    • David Brownell's avatar
      [PATCH] USB: disable usb device endpoints in more places · 9dfb0ad1
      David Brownell authored
      This patch touches the most significant places in usbcore
      that need to respond to configuration change events:
      
        - set_interface changes altsettings; affects endpoints
          in both new and old settings (but not other endpoints).
      
        - set_configuration; affects every endpoint
      
      The endpoints get disabled, flushing hardware state
      reliably.  This resolves two FIXMEs here, part of one
      in OHCI (ed_get) and all of one in EHCI (qh_append_tds).
      
      Not many drivers currently use these code paths, but
      now they should start to work properly.
      9dfb0ad1
    • David Brownell's avatar
      [PATCH] USB: SMP ehci-q.c 1010 BUG() · aba85312
      David Brownell authored
      Stefano Barbato wrote:
      > Dual PIII
      > kernel 2.4.21-rc2 (w/ SMP)  (2.5.69 below)
      > ...
      >
      > I put a few printk before the BUG() and I found that the offending if() is
      > this:
      >         if(qh->qh_state != QH_STATE_LINKED
      >                                 && qh->qh_state != QH_STATE_UNLINK_WAIT)
      >
      > because qh_state were QH_STATE_COMPLETING.
      
      I got a similar SMP report recently, but without info about
      which clause was failing -- which is a key clue, thanks!!
      
      The COMPLETING state is used only while a QH is being
      scanned for completed TDs.  (Think CPU-0 irq handler.)
      Looking at the handful of places that call the routine
      reporting the BUG(), a couple seem like they could make
      trouble with multiple CPUs in the driver.
      aba85312
    • David Brownell's avatar
      [PATCH] USB: Fix machine lockup when unloading HC driver (part 2) · 6d58d234
      David Brownell authored
      Alan Stern wrote:
      > I suggest you just forget about acquiring the lock in status_dequeue() and
      > simply leave it as
      >
      > 	del_timer_sync (&hcd->rh_timer);
      > 	hcd->rh_timer.data = 0;
      
      Hmm, so if some other URB gets queued in that window,
      it'll get trashed?  Unlikely .. the clean fix would be
      making the status endpoint have a real URB queue.
      
      I combined your suggested change with two others:
      (a) protect the status-unlink and control completion
          handlers against IRQs [ the cases Duncan noted]
      (b) use mod_timer to retrigger the timer, instead of the
          heavy weight path.
      6d58d234
    • Richard Henderson's avatar
      [ALPHA] Update for do_fork changes. · 3bfa3454
      Richard Henderson authored
      From Marc Zyngier <mzyngier@freesurf.fr>.
      3bfa3454
    • Richard Henderson's avatar
      Merge kanga.twiddle.net:/home/rth/work/linux/linus-2.5 · 2e815fb5
      Richard Henderson authored
      into kanga.twiddle.net:/home/rth/work/linux/axp-2.5
      2e815fb5
    • Richard Henderson's avatar
      [ALPHA] Fix single-step breakpoints. · 52c0adae
      Richard Henderson authored
      From Ivan Kokshaysky <ink@jurassic.park.msu.ru>.
      52c0adae
    • Greg Kroah-Hartman's avatar
      Merge gregkh@kernel.bkbits.net:/home/gregkh/linux/linus-2.5 · 8453878c
      Greg Kroah-Hartman authored
      into kroah.com:/home/linux/linux/BK/gregkh-2.5
      8453878c
    • Christoph Hellwig's avatar
      [PATCH] do_fork updates for ppc · ace40f57
      Christoph Hellwig authored
      Update ppc for mingo's do_fork changes.  Together with the pmac compile
      fixes this allows me to stay at the bleeding edge with my my ibook..
      ace40f57
    • Andrew Morton's avatar
      [PATCH] ppc64 update for do_fork() change · fada4013
      Andrew Morton authored
      This updates ppc64 for the do_fork() semantics change.
      fada4013
    • Andrew Morton's avatar
      [PATCH] revert sysfs non-fix · a193c746
      Andrew Morton authored
      I completely misread this code and there was no bug.  In fact yesterday's fix
      broke it.  Revert.
      a193c746
    • Andrew Morton's avatar
      [PATCH] sound/core/memalloc.c needs mm.h · 27a044d5
      Andrew Morton authored
      struct page is undefined in this file without this on Alpha.
      27a044d5
    • Andrew Morton's avatar
      [PATCH] apply_alternatives() fix · f69ca779
      Andrew Morton authored
      From: Andi Kleen <ak@suse.de>
      
      There is some assembly code in setup.c which doesn't explicitly set its
      section.  It comes after a C function which is marked __init.  The compiler
      does not reset the section after such C functions.  The assembly code is
      going into .text.init.
      
      That's the wrong section.  We get oopses modprobing sctp and, with Manfred's
      unmap-free-pages debug patch we get oopses modprobing e100.ko.  In
      apply_alternatives().
      f69ca779
  2. 19 May, 2003 3 commits