1. 23 Nov, 2007 40 commits
    • Linus Torvalds's avatar
      Import 2.2.3 · 254721ff
      Linus Torvalds authored
      254721ff
    • Linus Torvalds's avatar
      Linux 2.2.3pre3 · 777720de
      Linus Torvalds authored
      There's a new pre-patch for 2.2.3, one that I was already going to make
      the final 2.2.3, but I decided that I'm chicken after all, and that I
      might as well let some people check that it's sane.
      This pre-2.2.3 does:
      
       - Fix some silly NFS problems. Some of them can be quite bad: lost error
         notification of asynchronous writes, which can result in horrible
         problems (including lost email etc). Most people wouldn't ever notice,
         so don't panic, but forgetting about the error notification certainly
         counts as a brown paper bag.
       - Alpha should compile and work again
       - Various driver updates. This is actually the bulk of the patch, with
         IRDA updates, some scsi, video and sound driver updates etc.
       - The "mmap forgets about the file that was mapped" bug that has been
         discussed here. Only affected certain drivers.
       - shaper atomicity fixes
       - various minor TCP fixes
       - buffer growth fix and recursive IO memory reclaim fix from Andrea
       - network filter compiles ;)
       - unix gc fixes
      
      Tell me if you see problems, because I'm going to release it as 2.2.3
      unless people tell me otherwise..
      
                      Linus
      777720de
    • Linus Torvalds's avatar
      Import 2.2.3pre2 · f3d40e81
      Linus Torvalds authored
      f3d40e81
    • Linus Torvalds's avatar
      Import 2.2.3pre1 · 9ffb8c3a
      Linus Torvalds authored
      9ffb8c3a
    • Linus Torvalds's avatar
      Import 2.2.2 · 3f3d3923
      Linus Torvalds authored
      3f3d3923
    • Linus Torvalds's avatar
      Import 2.2.2pre5 · 351ae16b
      Linus Torvalds authored
      351ae16b
    • Linus Torvalds's avatar
      Linux 2.2.2pre4 · 724170c9
      Linus Torvalds authored
      In a superhuman effort to not get killed by my wife, I delayed the latest
      release for a day. And in fact, it's still just a pre-release, because I
      wanted to check with Ingo that I have his latest IO-APIC code with the
      proper handling of ExtINT. Ingo?
      
      Anyway, the "not quite valentine days release" (also known as the "horny
      greased weasel", aka "presidents day" release ;), is right now a pre-patch
      on ftp.kernel.org: /pub/linux/kernel/testing/pre-patch-2.2.2-4.gz.
      
      Happily, I haven't heard of any new real show-stoppers, which is good
      (especially considering the fact that I gave it an extra week just to hear
      if somebody could come up with some new problems). The things fixed
      relative to 2.2.1 are:
      
       - the inode thing. If you don't know, don't worry.
       - config scripts updated
       - IO-APIC cleanups and fixes, so that people with strange motherboards
         should be able to reboot cleanly and not get unexpected interrupts.
       - 2kB sector media (ie mostly MO) fixes. See all the warnings on the
         lists about fdisk confusion etc if you have one of these things.
       - IDE disk cleanups/fixes (geometry and autodetection)
       - PS/2 mouse hides ACK's again
       - pty crash fix
       - some network driver fixes (out-of-memory and shared interrupts)
       - some sound and video updates.
       - lockd cookie fixes
       - nfsd readdir reply cache fix
       - filesystem/VM deadlock avoidance (new deamon: kpiod)
       - SMP scheduler race condition (which nobody has probably ever seen)
       - TCP socket locking fix
      
      Most of the above are really hard to see in the first place, and not
      something most people would ever hit (with the possible exception of the
      inode thang).  But it would be good to have a really rock solid 2.2.2, so
      if people could just bother to check that it works for them, and I'll make
      this official tomorrow.
      
                      Linus
      724170c9
    • Linus Torvalds's avatar
      Linux 2.2.2-pre2 · 616d8602
      Linus Torvalds authored
      this one contains various small documentation updates and updates to xconfig,
      but the important parts (and the smallest part of the actual patch) are:
      
       - shared file lockup fix by Stephen Tweedie
       - my fix for the TCP bug that Ingo found
       - Ingo's io-apic setup fixes, which should finally get rid of the
         spurious apic interrupts with some motherboards and the ExtINT setup.
       - inode leak thing
       - SMP scheduler potential race condition fix
       - sound driver updates
       - partition and disk fixes (2kB blocksize media and some IDE disk
         geometry and irq detection issues).
      
      None of the fixes are critical to most people, but all of them _can_ be
      critical to people who have seen vulnerabilities in the area. As such, if
      you're happy with 2.2.1 there is no pressing reason to test this patch
      out, but I hope to have the pre-patches so that the final 2.2.2 can be
      left around for a while (CD-ROM manufacturers etc would certainly prefer
      to not see lots of releases).
      
                      Linus
      616d8602
    • Linus Torvalds's avatar
      Import 2.2.2pre1 · da0f0135
      Linus Torvalds authored
      da0f0135
    • Linus Torvalds's avatar
      Linux 2.2.1 - the Brown Paper Bag release · 85a51578
      Linus Torvalds authored
      The subject says it all. We did have a few paper-bag-inducing bugs in
      2.2.0, so there's a 2.2.1 out there now, just a few days after 2.2.0.
      Oh, well. These things happen,
      
                      Linus
      
      - the stupid off-by-one bug 'execute a coredump' crash found by Ingo
      - __down_interruptible on alpha
      - move "esstype" to outside a #ifdef MODULE
      - NFSD rename/rmdir fixes
      - revert to old array.c
      - change comment about __PAGE_OFFSET
      - missing "vma = NULL" case for avl find_vma()
      85a51578
    • Linus Torvalds's avatar
      Linux 2.2.0 · f6cce5da
      Linus Torvalds authored
      > Compile this code
      >
      > ---- cut here ----
      > #include <fcntlbits.h>
      > void main( int argc, char *argv[] ) {
      >         open( argv[ 1 ], O_WRONLY|O_CREAT|O_TRUNC, 0666 );
      > }
      > ---- and here  ----
      >
      > and run it like this
      >
      >     strace ./a.out >(cat - )
      >
      > with 2.0.36 & 2.2.0-pre[67] you get:
      >
      >     open("/dev/fd/63", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
      >
      > with 2.2.0-pre[89] you get:
      >
      >     open("/dev/fd/63", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 ENOENT (No
      > such file or directory)
      
      Ok, this seems to be due to pre9 removing some rather bogus code that
      happened to hide another problem in open_namei().
      I haven't actually tested this, but it looks really obvious, so does this
      patch fix it for you? (This should also fix a potential performance
      bogosity - there's absolutely no reason why we should get the directory
      lock when we don't need to for a normal open of an existing file).
      
                      Linus
      f6cce5da
    • Linus Torvalds's avatar
      2.2.0-final · 182f4220
      Linus Torvalds authored
      Hoya,
       there's now a 2.2.0-pre9 on ftp.kernel.org, and when you compile it it
      will call itself 2.2.0-final. The reason is fairly obvious: enough is
      enough, and I can't make pre-kernels forever, it just dilutes the whole
      idea. The only reason the tar-file is not called 2.2.0 is that I want to
      avoid having any embarrassing typos that cause it to not compile under
      reasonable configurations or something like that. Unreasonable
      configurations I no longer care about.
      
      Every program has bugs, and I'm sure there are still bugs in this. Get
      over it - we've done our best, and nobody ever believed that there
      wouldn't be 2.2.x kernels to fix problems as they come up, and delaying
      2.2.0 forever is not an option.
      
      I have a wedding anniversary and a company party coming up, so I'm taking
      a few days off - when I get back I expect to take this current 2.2.0-final
      and just remove the "-final" from the Makefile, and that will be it. I
      suspect somebody _will_ find something embarrassing enough that I would
      fix it too, but let's basically avoid planning on that.
      In short, before you post a bug-report about 2.2.0-final, I'd like you to
      have the following simple guidelines:
       "Is this something Linus would be embarrassed enough about that he would
        wear a brown paper bag over his head for a month?"
      and
       "Is this something that normal people would ever really care deeply
        about?"
      
      If the answer to either question is "probably not", then please consider
      just politely discussing it as a curiosity on the kernel mailing lists
      rather than even sending email about it to me: I've been too busy the last
      few weeks, and I'd really appreciate it if I could just forget the worries
      of a release for a few days..
      
      But if you find something hilariously stupid I did, feel free to share it
      with me, and we'll laugh about it together (and I'll avoid wearing the
      brown paper bag on my head during the month of February). Do we have a
      deal?
      
      I've seen people working on a 2.2.0 announcement, and I'm happy - I've
      been too busy to think straight, much less worry about details like that.
      If everything turns out ok, I'll have a few memorable bloopers in my
      mailbox but nothing worse than that, and I can sit down and actually read
      the announcement texts that people have been discussing.
      
      ObFeatures:
       - m68k sync
       - various minor driver fixes (irda, net drivers, scsi, video, isdn)
       - SGI Visual Workstation support
       - adjtimex update to the latest standards
       - vfat silly buglet fix
       - semaphores work on alpha again
       - drop the inline strstr() that gcc got wrong whatever we did
       - kswapd needed to be a bit more aggressive
       - minor TCP retransmission and delack fixes
      Until Monday,
                              Linus
      182f4220
    • Linus Torvalds's avatar
      Import 2.2.0pre8 · 3a282a06
      Linus Torvalds authored
      3a282a06
    • Linus Torvalds's avatar
      Linux 2.2.0pre7 · c68677ac
      Linus Torvalds authored
      Ok, I think I now know why pre-6 looks so unbalanced. It's two issues.
      Basically, trying to swap out a large number of pages from one process
      context is just doomed. It bascially sucks, because
      
       - it has bad latency. This is further excerberated by the per-process
         "thrashing_memory" flag, which means that if we were unlucky enough to
         be selected to be the process that frees up memory, we'll probably be
         stuck with it for a long time. That can make it extremely unfair under
         some circumstances - other processes may allocate the pages we free'd
         up, so that we keep on being counted as a memory trasher even if we
         really aren't.
         Note that this shows most under "moderate" load - the problem doesn't
         tend to show itself if you have some process that is _really_
         allocating a lot of pages, because then that process will be correctly
         found by the trashing logic. But if you have lots of "normal load"
         processes, some of those can get really badly hurt by this.
         In particular, the worst case you have a number of processes that all
         allocate memory, but not very quickly - certainly not more quickly than
         we can page things out. What happens is that under these circumstances
         one of them gets marked as a "scapegoat", and once that happens all the
         others will just live off the pages that the scapegoat frees up, while
         the scapegoat itself doesn't make much progress at all because it is
         always just freeing memory for others.
         The really bad behaviour tends to go away reasonably quickly, but while
         it happens it's _really_ unfair.
       - try_to_free_pages() just goes overboard, and starts paging stuff out
         without getting back to the nice balanced behaviour. This is what
         Andrea noticed.
         Essentially, once it starts failing the shrink_mmap() tests, it will
         just page things out crazily. Normally this is avoided by just always
         starting from shrink_mmap(), but if you ask try_to_free_pages() to try
         to free up a ton of pages, the balancing that it does is basically
         bypassed.
      
      So basically pre-6 works _really_ well for the kind of stress-me stuff
      that it was designed for: a few processes that are extremely memory
      hungry. It gets close to perfect swap-out behaviour, simply because it is
      optimized for getting into a paging rut.
      
      That makes for nice benchmarks, but it also explains why (a) sometimes
      it's just not very nice for interactive behaviour and (b) why it under
      normal load can easily swap much too eagerly.
      
      Anyway, the first problem is fixed by making "trashing" be a global flag
      rather than a per-process flag. Being per-process is really nice when it
      finds the right process, but it's really unfair under a lot of other
      circumstances. I'd rather be fair than get the best possible page-out
      speed.
      
      Note that even a global flag helps: it still clusters the write-outs, and
      means that processes that allocate more pages tend to be more likely to be
      hit by it, so it still does a large part of what the per-process flag did
      - without the unfairness (but admittedly being unfair sometimes gets you
      better performance - you just have to be _very_ careful whom you target
      with the unfairness, and that's the hard part).
      
      The second problem actually goes away by simply just not asking
      try_to_free_pages() to free too many pages - and having the global
      trashing flag makes it unnecessary to do so anyway because the flag will
      essentially cluster the page-outs even without asking for them to be all
      done in one large chunk (and now it's not just one process that gets hit
      any more).
      
      There's a "pre-7.gz" on ftp.kernel.org in testing, anybody interested?
      It's not the real thing, as I haven't done the write semaphore deadlock
      thing yet, but that one will not affect normal users anyway so for
      performance testing this should be equivalent.
      
                              Linus
      c68677ac
    • Linus Torvalds's avatar
      Import 2.2.0pre6 · 70c27ee9
      Linus Torvalds authored
      70c27ee9
    • Linus Torvalds's avatar
      Linux 2.2.0pre5 · 24522c1b
      Linus Torvalds authored
      Oh, well.. Based on what the arca-[678] patches did, there's now a pre-5
      out there. Not very similar, but it should incorporate the basic idea:
      namely much more aggressively asynchronous swap-outs from a process
      context.
      Comment away,
                      Linus
      24522c1b
    • Linus Torvalds's avatar
      Linux 2.2.0pre4 · f2d0374c
      Linus Torvalds authored
      Ok, you know the drill by now. This fixes:
       - yes, people told me about the new and improved ksymoops. Much better,
         no need for C++, and this one actually seems to compile and work
         reliably.
       - ntfs fixes
       - the vfat thing _really_ works now
       - NFS fix for deleting files while writebacks active.
       - ppa/imm driver updated
       - minor mm balancing patches
       - Alan took the gauntlet and cleaned up some CONFIG_PROC_FS stuff.
      More on Monday,
      
                      Linus
      f2d0374c
    • Linus Torvalds's avatar
      Import 2.2.0pre3 · 14fbb8f3
      Linus Torvalds authored
      14fbb8f3
    • Linus Torvalds's avatar
      Linux 2.2.0pre2 (December 31 1998) · c828dfb9
      Linus Torvalds authored
      Well, some people obviously had problems with the first 2.2.0pre, so
      there's a second one there. Most of it is almost purely syntactic sugar:
      configuration issues and jiffies wraparound, but there were a few problems
      wrt some IDE disk geometry stuff in particular that made 2.2.0pre1 not
      boot for some people.
      
      Other real changes:
       - nfsd updated, and we have an official maintainer for knfsd (and I was
         happy by how many people were ready to stand up for it. Good show,
         guys!)
       - network driver updates (tulip/eepro)
       - some TCP fixes for occasional but nasty performance problems.
       - fix for an attack where you could cause a complete and utter lockup of
         the kernel as a normal user. Thanks to Michael Chastain for keeping the
         faith on this one and reminding me to fix it.
      
      If you haven't had problems with pre1, there should be no major cause to
      look at pre2. But if you haven't even looked at pre1 yet, please consider
      looking at the pre-2.2.0 kernels before it's too late. I'm going to be
      extremely rude to people who knew better but didn't test out the pre-
      kernels and then send me bug-reports on the released 2.2.0.
      
      		Linus
      c828dfb9
    • Linus Torvalds's avatar
      Linux 2.2.0 (pre1) (28 Dec 1998) · bc586e63
      Linus Torvalds authored
       we're in the pre-2.2.0 series now, I'm all synched up with Alan, and I
      don't have anything pending any more. Over the internet nobody can hear
      you all scream in pain over all your favourite features that didn't make
      it.
      
      	Linus "another year older and wise as hell by now" Torvalds
      bc586e63
    • Linus Torvalds's avatar
      Import 2.1.133pre5 · a6b5d744
      Linus Torvalds authored
      a6b5d744
    • Linus Torvalds's avatar
      Import 2.1.133pre4 · b7cd5844
      Linus Torvalds authored
      b7cd5844
    • Linus Torvalds's avatar
      Import 2.1.133pre3 · 9390bd47
      Linus Torvalds authored
      9390bd47
    • Linus Torvalds's avatar
      Import 2.1.133pre1 · 7d582abf
      Linus Torvalds authored
      7d582abf
    • Linus Torvalds's avatar
      Import 2.1.132 · 09b9d40a
      Linus Torvalds authored
      09b9d40a
    • Linus Torvalds's avatar
      pre-2.1.132-4.. · 4bc4a88c
      Linus Torvalds authored
      There's a new pre-patch on ftp.kernel.org. I've been waiting for a few
      other things, but the pre-patches are getting to be so big that it's
      getting unwieldly, so I'll probably make a real 2.1.132 real soon now. In
      the meantime, there's a pre-patch that people can verify for sanity (this
      one should have coda-fs back to working order, for example - patch
      craziness corrupted a simple update in pre-3).
      
                      Linus
      4bc4a88c
    • Linus Torvalds's avatar
      Import 2.1.132pre3 · e2ba60b6
      Linus Torvalds authored
      e2ba60b6
    • Linus Torvalds's avatar
      pre-2.1.132-2.. · bd9c5382
      Linus Torvalds authored
      ..is out there, and has everybodys favourite fix, ie the version number
      has been bumped this time. In addition, compared to pre-1, it has:
       - autofs fix (uninitialized inode number could lead to "interesting"
         problems)
       - some more NFS fixes (file truncation with pending write-backs this time)
       - disable_irq()/enable_irq() now nests properly, as Alan convinced me
         (quite rightly) that they have to nest in order to work sanely with
         shared interrupt and multiple CPU's and various other schenarios.
       - more merges from Alan, we're getting closer to being synched up.
      Most of the bulk of the thing is the irda stuff, that most people can
      ignore.
      
                      Linus
      bd9c5382
    • Linus Torvalds's avatar
      Linux 2.1.132pre1 · 2e59abdf
      Linus Torvalds authored
      There's a new pre-patch out there. I'm back from Finland, and have caught
      up with just about half the email that I got during the stay. However,
      even the part I caught up with I may have partly missed something in,
      because (for obvious reasons) I didn't read them as carefully (*) as I
      usually do.
      
      This should fix at least part of the NFS problems people have reported:
      there was code to completely incorrectly invalidate quite valid write
      requests under some circumstances. The pre-patch also contains the first
      batch of patches merged in from Alan, and the "rmdir" problems should be
      fixed (mostly thanks to Al Viro).
      
      This pre-patch also gets rid of some imho completely unnecessary
      complexity in some of the VM memory freeing routines. There have been
      patches floating around that added more heuristics on when to do
      something, and this tries to get the same result by just removing old
      heuristics that didn't make much sense.
      
      	Linus
      
      (*) Even my usual "careful" is not very careful by other peoples
      standards. So when _I_ say that I wasn't very careful, you should just
      assume that I was reading my email about as carefully as a hyper-active
      hedgehog on some serious uppers. Can you say "ignored email" three times
      quickly while chewing on an apple?
      2e59abdf
    • Linus Torvalds's avatar
      Linux 2.1.131 · ec274075
      Linus Torvalds authored
      2.1.131 is out there now - and will be the last kernel release for a
      while. I'm going to Finland for a week and a half, and will be back mid
      December. During that time I hope people will beat on this. I'll be able
      to read email when I'm gone, but as I haven't been back in over a year,
      I'm not very likely to.
      
      Alan, I have got any replies (positive or negative) about the VFS fixes in
      pre-2.1.131-3 (which are obviously in the real 131 too), so I hope that
      means that I successfully fixed all filesystems. The chance of that being
      true is remote, but hey, I can hope.  If not, I assume you'll be doing
      your ac patches anyway (any bugs wrt rmdir() should be fairly obvious once
      seen), and people might as well consider those official..
      
                      Linus
      ec274075
    • Linus Torvalds's avatar
      pre-patch-2.1.131-3 · 16c82539
      Linus Torvalds authored
      Ok,
       I've made a new pre-patch-2.1.131-3.
      
      The basic problem (that Alexander Viro correctly diagnosed) is that the
      inode locking was horribly and subtly wrong for the case of a "rmdir()"
      call. What rmdir() did was essentially something like
      
       - VFS: lock the directory that contains the directory to remove
         (this is normal and required to make sure that the name updates are
         completely atomic - so removing or adding anything requires you to hold
         the lock on the directory that contains the removee/addee)
       - low-level filesystem: lock the directory you're going to remove, in
         order to atomically check that it's empty.
      
      So far so good, the above makes tons of sense. HOWEVER, the problem is
      fairly obvious if anybody before Alexander had actually bothered to think
      about it: when we hold two locks, we had better make sure that we get the
      locks in the right order, or we may end up deadlocked with two (or more)
      processes getting the locks in the wrong order and waiting on each other.
      
      Now, if it was only rmdir(), things would be fine, because the directory
      hierarchy itself imposes a lock order for rmdir(). But we have another
      case that needs to lock two directories: "rename()". And that one doesn't
      have the same kind of obvious order, and uses a different way to order the
      two locks it gets. BOOM.
      
      As far as I can tell, this is a problem in 2.0.x too, but while it's a
      potential really nasty DoS-opening, it does have the saving grace that the
      window to trigger it is really really small. I don't know if you can
      actually make an exploit for it that has any real chance of hitting it,
      but it's at least conceptually possible.
      
      Now, the only sane fix was to actually make the VFS layer do all the
      locking for rmdir(), and thus let the VFS layer make sure the order is
      correct, so that low-level filesystems don't need to worry their pretty
      heads. I tried to do that in the previous pre-patch, and it worked well
      for ext2, but not all that much else. The problem was that too many
      filesystems "knew" what the rmdir() downcall used to do. Oh, well.
      
      Anyway, I've fixed the low-level filesystems as far as I can tell, and the
      end result is a much cleaner interface (and one less bug). But it's an
      interface change at a fairly late date, and while the fixes to smbfs etc
      looked for the most part obvious, I haven't been able to test them, so
      I've done most of them "blind".
      
      Sadly, this bug couldn't just be glossed over, because a normal user could
      (by knowing the exact right incantation) force tons of unkillable
      processes that held critical filesystem resources (any lookup on a
      directory that was locked would in turn also lock up). So I'd ask people
      who have done filesystems for Linux to look over my changes, and if the
      filesystems are not part of the standard distribution please look over
      your own locally maintained fs code. I think we can ignore 2.0.x by virtue
      of it probably being virtually impossible to trigger. I'll leave the
      decision up to Alan.
      
      Most specially, I'd like to have people who use/maintain vfat and umsdos
      filesystems to test out that I actually made those filesystems happy with
      my changes. The other filesystems were more straightforward.
      
      Oh, and thanks to Alexander. Not that I really needed another bug to fix,
      but it feels good to plug holes.
      
                              Linus
      
      The change is basically:
       - the VFS layer locks the directory to be removed for you (as opposed to
         just the directory that contains the directory to be removed as it used
         to). A lot of filesystems didn't actually do this, and it is required,
         because otherwise the test for an empty directory may be subverted by a
         clever hacker.
       - the VFS layer will have done a dcache "prune" operation on the
         directory, and if there were no other uses for that dcache entry, it
         will have done a "d_drop()" on it too.
       - the above essentially means that any filesystem can do a
              if (!list_empty(&dentry->d_hash))
                      return -EBUSY;
         to test whether there are other users of this directory. No need to do
         any extra pruning etc - if it's been dropped there won't be any new
         users of the dentry afterwards, so there are no races. So after doing
         the above test you know that you'll have exclusive access to the dentry
         forever.
         Most notably, the low-level filesystem should _not_ look at the
         dentry->d_count member to see how many users there are. The VFS layer
         currently artificially raises the dentry count to make sure
         "d_delete()" doesn't get rid of the inode early.
       - however: traditional local UNIX-type filesystems tend to want to allow
         removing of the directory even if it is in use by something else. This
         requires that the inode be accessible even after the rmdir() - even
         though it doesn't necessarily need to actually _do_ anything.
         For a normal UNIX-like filesystem this tends to be trivial and quite
         automatic behaviour, but you need to think about whether your
         filesystem is of the kind where the inode stays around even after the
         delete until we locally do the final "iput()". For example, on
         networked filesystems this is generally not true, simply because the
         server will have de-allocated the inode even if we still have a
         reference to it locally.
      16c82539
    • Linus Torvalds's avatar
      Linux 2.1.131pre2 · b468356b
      Linus Torvalds authored
      There's a pre-131-2 patch there on ftp.kernel.org in the testing
      directory. This should have the NFS locking issues worked out (please
      test), and also has a rather subtle but potentially very nasty deadlock
      due to incorrect semaphore ordering with rmdir() hopefully fixed for good.
      Alan, the regparm patches are also there.
      
                      Linus
      
      nfs: write back everything whenever some lock is changed (not just for
           unlock), and always invalidates the caches.
      b468356b
    • Linus Torvalds's avatar
      The Basted Turkey Release (aka 2.1.130) · 2a86df06
      Linus Torvalds authored
      Following hot on the heels of the greased weasel, the basted turkey rears
      its handsome head.
      
      The basted turkey release fixes some problems that our dear weasel had,
      namely:
       - NFS reference counting was wrong. It had been wrong for a long time,
         but apparently the more aggressively asynchronous code was more easily
         able to show the resultant random memory corruption. That should be
         gone.
       - The UP flu fixed officially (this has been in most of the 2.1.129
         patches)
       - kernel_thread() used to be able to cause bad things in init-routines at
         bootup. Fixed.
       - itimers could lead to bad things in SMP under heavy itimer load.
       - various mm tweaks to make it behave better under load. Things for dirty
         buffers still under consideration.
       - IP masqerading check fixes.
       - acenic gigabit ethernet driver
       - some drunken revelers fixed some MCA issues.
       - alpha PCI setup updates and video drivers
       - hfs and minix filesystem fixes.
      
      On the whole, an excellent thing to do this evening, and goes together
      remarkably well with some good red wine. Amaze your friends and relatives
      by completely ignoring them, sitting in a corner with your own basted
      turkey, and getting wasted on red wine. Much more fun than your average
      thanksgiving dinner,
      
      		Linus
      2a86df06
    • Linus Torvalds's avatar
      pre-2.1.130-3 · 63f5d27a
      Linus Torvalds authored
      There's a new pre-patch for people who want to test these things out: I'll
      probably make a real 2.1.130 soon just to make sure all the silly problems
      in 2.1.129 are left behind (ie the UP flu in particular that people are
      still discussing even though there's a known cure).
      
      The pre-patch fixes a rather serious problem with wall-clock itimer
      functions, that admittedly was very very hard to trigger in real life (the
      only reason we found it was due to the diligent help from John Taves that
      saw sporadic problems under some very specific circumstances - thanks
      John).
      
      It also fixes a very silly NFS path revalidation issue: when we
      revalidated a cached NFS path component, we didn't update the revalidation
      time, so we ended up doing a lookup over the wire every time after the
      first time - essentially making the dcache useless for path component
      caching of NFS. If you use NFS heavily, you _will_ notice this change (it
      also fixes some rather ugly uses of dentries and inodes in the NFS code
      where we didn't update the counter so the inode wasn't guaranteed to even
      be there any more!).
      
      Also, thanks to Richard Gooch &co, who found the rather nasty race
      condition when a kernel thread was started from an init-region. The
      trivial fix was to not have the kernel thread function be inlined, but
      while fixing it was trivial, it wasn't trivial to notice in the first
      place. Good debugging.
      
      And the UP flu is obviously fixed here (as it was in earlier pre-patches
      and in various other patches floating around).
      
                              Linus
      63f5d27a
    • Linus Torvalds's avatar
      Import 2.1.130pre2 · 2eec9bc7
      Linus Torvalds authored
      2eec9bc7
    • Linus Torvalds's avatar
      Linux 2.1.129 · c54c8322
      Linus Torvalds authored
      To a large degree is more merges for PPC and Sparc (and
      somehow I must have missed ARM _again_, so I'll have to find that).
      
      But there's a few other things in there:
       - ncr53c8xx tag fix
       - more sound fixes.
       - NFS fixed
       - some subtle TCP issues fixed
       - and lots of mm smoothness tweaks (most of those have been floating
         around for some time - like getting rid of the last vestiges of page
         ages which just complicated and hurt the code)
      
      Have fun with it, and tell me if it breaks. But it won't. I'm finally
      getting the old "greased weasel" feeling back. In short, this is the much
      awaited perfect and bug-free release, and the only reason I don't call it
      2.2 is that I'm chicken.
      
      	Kvaa, kvaa,
      			Linus
      c54c8322
    • Linus Torvalds's avatar
      Import 2.1.129pre6 · 03c31052
      Linus Torvalds authored
      03c31052
    • Linus Torvalds's avatar
      Import 2.1.129pre5 · ee537af3
      Linus Torvalds authored
      ee537af3
    • Linus Torvalds's avatar
      Import 2.1.129pre4 · d3c10203
      Linus Torvalds authored
      d3c10203
    • Linus Torvalds's avatar
      Linux 2.1.129-pre3 · 5f99a99e
      Linus Torvalds authored
      I don't know how I made an old pre-patch available: I've made a pre-3 that
      has the proper proc thing so that it compiles (it is otherwise identical
      to pre-2, so if you got pre-2 to compile by patching by hand, then there's
      no reason to get pre-3).
      
                      Linus
      5f99a99e