1. 12 Sep, 2002 26 commits
    • Neil Brown's avatar
      [PATCH] kNFSd 11: Remove problematic "security" checks when NFS exporting. · 04146816
      Neil Brown authored
      The nfs server currently doesn't allow you to export both a
      directory and an ancestor of that directory on the same filesystem.
      
      This check is more of a problem than a solution and can be
      done in user-space if needed, so it is removed.
      
      The potential for a security problem is because the files
      below the lower directory could be accessed as though it were under
      either of the export points, and so the access control that is
      applied might not be what is expected (by the nieve admin).
      
      e.g.  export /a as readwrite and /a/b as readonly.  Then a/b/c
      can be accessed readwrite as it is in /a which might not be the
      intend.  Altering the user to this can be done in userspace though.
      
      The current restriction also stops exporting / as readonly and
      /tmp as read-write which some people want to do.  Providing
      /tmp is also exported subtree_check (the default) there is no
      security issue here.
      04146816
    • Neil Brown's avatar
      [PATCH] kNFSd 10: Discard ex_dev and ex_ino from svc_export · 9bb4ebc6
      Neil Brown authored
      They can be deduced from ex_dentry
      9bb4ebc6
    • Neil Brown's avatar
      [PATCH] kNFSd 9: Discard cl_addr · d42f5634
      Neil Brown authored
      We currently store the address list with each
      client and use it only to print out comments
      on /proc/fs/nfs/exports
      While these can be helpful, they are not critical and
      could be added back later after we restructure the exports
      table.
      d42f5634
    • Neil Brown's avatar
      [PATCH] kNFSd 8: Don't store path in exports table. · 5488bb08
      Neil Brown authored
      Instead, use d_path to find path from dentry/vfsmnt.
      This requires allocating a buffer at exp_open time,
      and releasing it when closing.
      5488bb08
    • Neil Brown's avatar
      [PATCH] kNFSd 7: Discard cl_idlen · 9c75479d
      Neil Brown authored
      It is never used
      9c75479d
    • Neil Brown's avatar
      [PATCH] kNFSd 6: Expose anon uid and gid in /proc/fs/nfs/exports · 979836d4
      Neil Brown authored
      Don't print if default, which should be "-2", but is currently 65534..
      We really need a 32bit uid interface for 2.6.
      979836d4
    • Neil Brown's avatar
      [PATCH] kNFSd 5: Get rid of ex_parent from svc_export · 3eea06ce
      Neil Brown authored
      I was never entirely sure what it was for, but it
      is not used now, only set, so it can go.
      3eea06ce
    • Neil Brown's avatar
      [PATCH] kNFSd 4: Discard svc_uidmap structure · 8a5d34f3
      Neil Brown authored
      It is un-used and never will be.  uid mapping will be done a
      different way (if at all).
      8a5d34f3
    • Neil Brown's avatar
      [PATCH] kNFSd 3: Increase separation between lockd and nfsd. · 151ddf2e
      Neil Brown authored
      lockd currently asks nfsd for a 'client handle' for each
      request.
      
      This is used as a key for finding (or creating) a 'nlm_host'
      structure, so that there is only one of these per client...almost.
      There can currently be up to 4 nlm_hosts for a given client,
      depending on protocol (udp/tcp) or version (v1 or v4).
      
      But this isn't handled very well.
      
      So the question is: is there any advantage in having only on
      nlm_host per real host, or have we simply have one for each IP
      address that makes requests, whether they are separate hosts or not.
      
      The nlm_host structure is used:
       1/ to hold a lockd rpc client for talking to the
          remote lockd.  Having multiple lockd clients cannot hurt
          except possibly to waste a little space.
       2/ to identify resources to free when we receive notification
          from statd that a client has restarted.
          As statd gets a hostname and looks up all IP addresses,
          and then sends a notification for each IP for which it has
          a registration, there is no need to minimise the number
          of nlm_host structures (each of which register for monitoring).
       3/ to identify resources to free when a client sends a
          "free_all" request.  If a client uses multiple IP addresses to
          create locks, and then sends free_all from just one IP address
          we will loose here.
          However it is not clear that a client would ever want to send
          a free_all request, and the linux client doesn't seem to, so
          there is unlikely to be any loss here.
      
      This patch does not ask nfsd for a client identifier, but rather
      finds an nlm_host based on IP, version, protocol (udp/tcp) and
      whether we are acting as NFS server or client.
      
      All of this information is then placed in the cookie that is
      passed to statd and returned by statd when the client restarts.
      Previously only the IP address was passing the cookie, so possibly
      not all nlm_host structures would have been found.
      
      Because of these changes, lockd does not need to know
      anything about the nfsd export table, so the interface to
      nfsd is much more narrow.
      
      Another consequence is that when nfsd is told to delete a client,
      it cannot tell lockd to forget all the locks for that client.
      However it is not clear that lockd should ever forget any locks
      unless it is told to shutdown (or simulate a shutdown), and in
      anycase, the current nfsd admin tools never tell nfsd to delete
      a client anyway.
      151ddf2e
    • Neil Brown's avatar
      [PATCH] kNFSd 2: Lockd to shutdown without engaging with nfsd · f96e7cb1
      Neil Brown authored
      Currently, when lockd wants to invalidate all it's
      clients, it asks nfsd to iterate through them.  Now
      it iterates itself.
      f96e7cb1
    • Neil Brown's avatar
      [PATCH] kNFSd 1: New structure initialisers for lockd. · 0ec2ca38
      Neil Brown authored
      Just the new structure initialisers.
      0ec2ca38
    • Neil Brown's avatar
      [PATCH] md - 3 of 3 - Fix compile errors when tracing enabled in MD · 44b2fd85
      Neil Brown authored
      both md.c and raid5.c can be compiled with debugging and compile
      errors in this code aren't normally noticed as they aren't even
      compiled.
      
      Now the debugging messages are compiled but optimised out so we will
      always see the errors.
      
      Current errors are fixed.
      44b2fd85
    • Neil Brown's avatar
      [PATCH] md - 2 of 3 - Fix bug in raid5 AGAIN · 6545eefc
      Neil Brown authored
      That recent bug fix in raid5 just changed the bug, it didn't fix it.
      I think that the original code was actually wrong, which didn't
      help.
      
      This time, the code actually matches the nearby comment, that has been expanded
      a bit, so I feel somewhat more confident that it is actually right.
      6545eefc
    • Neil Brown's avatar
      [PATCH] md - 1 of 3 - Remove BUG in md.c that change in 2.5.33 triggers. · 181bdc17
      Neil Brown authored
      Since 2.5.33, the blk_dev[].queue is called without
      the device open, so md_queue_proc can no-longer assume
      that the device is open.
      181bdc17
    • Linus Torvalds's avatar
      Merge bk://jfs.bkbits.net/linux-2.5 · da4c77fc
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      da4c77fc
    • Dave Kleikamp's avatar
      JFS: cleanup -- Remove excessive typedefs · 8916919b
      Dave Kleikamp authored
      8916919b
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · c3b72b7d
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      c3b72b7d
    • Kai Germaschewski's avatar
      kbuild: Use normal rule for preprocessing vmlinux.lds.S · 152d38aa
      Kai Germaschewski authored
      Use the same rule as in Rules.make for preprocessing 
      vmlinux.lds.S, that also gives automatic dependency tracking.
      This means we should also use the standard AFLAGS_... instead
      of CPPFLAGS_... to provide specific additional flags.
      152d38aa
    • Kai Germaschewski's avatar
      kbuild: Fix copying of shipped files · a70dba80
      Kai Germaschewski authored
      When using cp to copy the shipped file to its actual name,
      permissions would be preserved, particularly the copy would be
      read-only when the original was (BitKeeper) read-only, leading
      to an error when executing the rule a second time.
      
      So now we use cat, which will generate a writable file.
      a70dba80
    • Kai Germaschewski's avatar
      kbuild: Fix up non-verbose mode · a3e680c5
      Kai Germaschewski authored
      Just some cosmetical changes to align output in non-verbose mode.
      a3e680c5
    • Daniel Jacobowitz's avatar
      [PATCH] Typo in do_syslog/__down_trylock lockup fix · b9ca16e0
      Daniel Jacobowitz authored
      Linus spotted one cut-n-pasto ('tracing' argument) but didn't see the
      other: we were walking the ptrace_children list by the sibling field.
      
      So we got garbage for your task_structs when this happened.  If the list
      wasn't empty, it would crash.  Strace detaches from all tasks when it
      receives a Control-C so only with enough threads and SMP would this be
      easily seen.
      b9ca16e0
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/linus-2.5 · 916da46b
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      916da46b
    • Jeff Dike's avatar
      [PATCH] UML arch (user-mode Linux) · f2a7c782
      Jeff Dike authored
      This patch implements UML for 2.5.34.
      f2a7c782
    • Jose A. Lopez's avatar
      [PATCH] usbmidi patch · 6cbd4aa9
      Jose A. Lopez authored
      I have changed the name of a local variable "l" to be "j", because with some
      fonts should be difficult to see if [1+l+i] means [2+i] or what.
      6cbd4aa9
    • Oliver Neukum's avatar
      [PATCH] fixes for races in kaweth probe · 90cc0e1a
      Oliver Neukum authored
      using init_etherdev(0, 0) in probe is a race. The struct net_device must be
      allocate and filled before init_etherdev is called, or there's a race which
      creates a network interface that isn't usable.
      The patch for kaweth for 2.5 fixes it.
      90cc0e1a
    • Adam J. Richter's avatar
      [PATCH] Building list of drives in right order · 7fe2a2c5
      Adam J. Richter authored
      	ata_attach in linux-2.5.34/drivers/ide/ide.c builds a list of
      IDE drives that do not yet have a device driver bound to them, in case
      ide-disk, ide-scsi, or whatever driver you want to use is not loaded
      yet.
      
      	The problem was that ata_attach was adding to the head of
      the list, so the list was being built in reverse order.  So, if
      you had two IDE disks, and ide-disk was a loadable module, the
      devfs entries for the disks would be numbered in reverse (the
      first disk would be /dev/discs/disc1, and the second would be
      /dev/discs/disc0).
      
      	This fixes the problem by changing the relevant list_add to
      list_add_tail.  Incidentally, the generic code in drivers/base/ already
      does it this way.
      7fe2a2c5
  2. 11 Sep, 2002 14 commits
    • David Brownell's avatar
      [PATCH] ehci, async idle timout · b4f93012
      David Brownell authored
      One more patch:  this turns off async schedule processing
      if there are no control or bulk transactions for a while
      (currently HZ/3).  Consequence:  no PCI accesses unless
      there's work to do.  (And a FIXME comment is gone!)
      b4f93012
    • Bob Tracy's avatar
      [PATCH] 2.5.X config: USB speedtouch driver · dcd37e86
      Bob Tracy authored
       Minor nit: the subject driver depends on ATM, so a config-time check to
       see if ATM support is enabled is appropriate.
      dcd37e86
    • Greg Kroah-Hartman's avatar
      d17aa390
    • Oliver Neukum's avatar
      [PATCH] open/close fix for kaweth · 5f680f7a
      Oliver Neukum authored
      this handles the error case.
      5f680f7a
    • Oliver Neukum's avatar
      [PATCH] new ids for hpusbscsi · 4caedfb4
      Oliver Neukum authored
      new device ids for hpusbscsi
      4caedfb4
    • Oliver Neukum's avatar
      [PATCH] fix for error handling in microtek · a3cd1c05
      Oliver Neukum authored
      a3cd1c05
    • David Brownell's avatar
      [PATCH] ehci misc fixes · 4e505316
      David Brownell authored
      This removes some bugs:
      
       - a short read problem with control requests
       - only creates one control qh (memleak fix)
       - adds an omitted hardware handshake
       - reset timeout in octal, say what?
       - a couple BUG()s outlived their value
      
      Plus it deletes unused stub code for split ISO
      and updates some internal doc.
      4e505316
    • David Brownell's avatar
      [PATCH] usbnet, Epson client · cee1d946
      David Brownell authored
        * Tells about some Epson firmware that uses this as part
          of a Linux interop solution (PDA-ish SoCs, hmm)
        * Includes some GeneSys info from emails
        * Minor cleanups
      cee1d946
    • Mario Lang's avatar
      [PATCH] HandyTech HandyLink patch · f6c7055b
      Mario Lang authored
      HandyTech's Braille displays support a USB port, those are
      implemented with a GoHubs usb serial converter.  The only difference
      is that the pID is 0x1200, not 0x1000.
      f6c7055b
    • Linus Torvalds's avatar
      Allocate system call numbers: 250 and 251 for hugetlb, with · 0e9387ab
      Linus Torvalds authored
      252 for exit_group
      0e9387ab
    • Dave Kleikamp's avatar
    • Ingo Molnar's avatar
      [PATCH] Thread deadlock fix.. · 6ff3e5b7
      Ingo Molnar authored
      This fixes the old-pthreads breakage i can reproduce.
      
      the fix is to only do the thread-group exit-completion logic in case of
      thread-groups.
      6ff3e5b7
    • Ingo Molnar's avatar
      [PATCH] sys_exit_group(), threading, 2.5.34 · b62bf732
      Ingo Molnar authored
      This is another step to have better threading support under Linux, it
      implements the sys_exit_group() system call.
      
      It's a straightforward extension of the generic 'thread group' concept,
      which extension also comes handy to solve a number of problems when
      implementing POSIX threads.
      
      POSIX exit() [the C library function] has the following semantics: all
      thread have to exit and the waiting parent has to get the exit code that
      was specified for the exit() function.  It also has to be ensured that
      every thread has truly finished its work by the time the parent gets the
      notification.  The exit code has to be propagated properly to the parent
      thread even if not the thread group leader calls the exit() function.
      
      Normal single-thread exit is done via the pthread_exit() function, which
      calls sys_exit().
      
      Previous incarnations of Linux POSIX threads implementations chose the
      following solution: send a 'thread management' signal to the thread
      group leader via tkill(), which thread goes around and kills every
      thread in the group (except itself), then calls sys_exit() with the
      proper exit code.  Both old libpthreads and NGPT use this solution.
      
      This works to a certain degree, unless a userspace threading library
      uses the initial thread for normal thread work [like the new
      libpthreads], which 'work' can cause the initial thread to exit
      prematurely.
      
      At this point the threading library has to catch the group leader in
      pthread_exit() and has to keep the management thread 'hanging around'
      artificially, waiting for the management signal. Besides being slightly
      confusing to users ('why is this thread still around?') even this variant
      is unrobust: if the initial thread is killed by the kernel (SIGSEGV or any
      other thread-specific event that triggers do_exit()) then the thread goes
      away without the thread library having a chance to intervene.
      
      the sys_exit_group() syscall implements the mechanism within the kernel,
      which, besides robustness, is also *much* faster. Instead of the threading
      library having to tkill() every thread available, the kernel can use the
      already existing 'broadcast signal' capability. (the threading library
      cannot use broadcast signals because that would kill the initial thread as
      well.)
      
      as a side-effect of the completion mechanism used by sys_exit_group() it
      was also possible to make the initial thread hang around as a zombie until
      every other thread in the group has exited. A 'Z' state thread is much
      easier to understand by users - it's around because it has to wait for all
      other threads to exit first.
      
      and as a side-effect of the initial thread hanging around in a guaranteed
      way, there are three advantages:
      
       - signals sent to the thread group via sys_kill() work again. Previously
         if the initial thread exited then all subsequent sys_kill() calls to
         the group PID failed with a -ESRCH.
      
       - the get_pid() function got faster: it does not have to check for tgid
         collision anymore.
      
       - procps has an easier job displaying threaded applications - since the
         thread group leader is always around, no thread group can 'hide' from
         procps just because the thread group leader has exited.
      
       [ - NOTE: the same mechanism can/will also be used by the upcoming
           threaded-coredumps patch. ]
      
      there's also another (small) advantage for threading libraries: eg. the
      new libpthreads does not even have any notion of 'group of threads'
      anymore - it does not maintain any global list of threads. Via this
      syscall it can purely rely on the kernel to manage thread groups.
      
      the patch itself does some internal changes to the way a thread exits: now
      the unhashing of the PID and the signal-freeing is done atomically. This
      is needed to make sure the thread group leader unhashes itself precisely
      when the last thread group member has exited.
      
      (the sys_exit_group() syscall has been used by glibc's new libpthreads
      code for the past couple of weeks and the concept is working just fine.)
      b62bf732
    • Ingo Molnar's avatar
      [PATCH] exit.c compilation warning fix · 4c21fddc
      Ingo Molnar authored
      I forgot to remove an unused label in the deadlock fix patch.
      4c21fddc