1. 10 Sep, 2007 7 commits
  2. 05 Sep, 2007 15 commits
  3. 04 Sep, 2007 5 commits
  4. 02 Sep, 2007 2 commits
    • David Howells's avatar
      [MTD] Initialise s_flags in get_sb_mtd_aux() · 48440e89
      David Howells authored
      Initialise s_flags in get_sb_mtd_aux() from the flags parameter.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      48440e89
    • Jason Lunz's avatar
      [JFFS2] fix write deadlock regression · fc0e0197
      Jason Lunz authored
      I've bisected the deadlock when many small appends are done on jffs2 down to
      this commit:
      
      commit 6fe6900e
      Author: Nick Piggin <npiggin@suse.de>
      Date:   Sun May 6 14:49:04 2007 -0700
      
          mm: make read_cache_page synchronous
      
          Ensure pages are uptodate after returning from read_cache_page, which allows
          us to cut out most of the filesystem-internal PageUptodate calls.
      
          I didn't have a great look down the call chains, but this appears to fixes 7
          possible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in
          ecryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in
          block2mtd.  All depending on whether the filler is async and/or can return
          with a !uptodate page.
      
      It introduced a wait to read_cache_page, as well as a
      read_cache_page_async function equivalent to the old read_cache_page
      without any callers.
      
      Switching jffs2_gc_fetch_page to read_cache_page_async for the old
      behavior makes the deadlocks go away, but maybe reintroduces the
      use-before-uptodate problem? I don't understand the mm/fs interaction
      well enough to say.
      
      [It's fine. dwmw2.]
      Signed-off-by: default avatarJason Lunz <lunz@falooley.org>
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      fc0e0197
  5. 01 Sep, 2007 11 commits
    • Trond Myklebust's avatar
      NFS: Fix a write request leak in nfs_invalidate_page() · 1b3b4a1a
      Trond Myklebust authored
      Ryusuke Konishi says:
      
      The recent truncate_complete_page() clears the dirty flag from a page
      before calling a_ops->invalidatepage(),
      ^^^^^^
      static void
      truncate_complete_page(struct address_space *mapping, struct page *page)
      {
              ...
              cancel_dirty_page(page, PAGE_CACHE_SIZE);  <--- Inserted here at
      kernel 2.6.20
      
              if (PagePrivate(page))
                      do_invalidatepage(page, 0);   ---> will call
      a_ops->invalidatepage()
              ...
      }
      
      and this is disturbing nfs_wb_page_priority() from calling 
      nfs_writepage_locked() that is expected to handle the pending
      request (=nfs_page) associated with the page.
      
      int nfs_wb_page_priority(struct inode *inode, struct page *page, int how)
      {
              ...
              if (clear_page_dirty_for_io(page)) {
                      ret = nfs_writepage_locked(page, &wbc);
                      if (ret < 0)
                              goto out;
              }
              ...
      }
      
      Since truncate_complete_page() will get rid of the page after
      a_ops->invalidatepage() returns, the request (=nfs_page) associated
      with the page becomes a garbage in nfs_inode->nfs_page_tree.
      ------------------------
      
      Fix this by ensuring that nfs_wb_page_priority() recognises that it may
      also need to clear out non-dirty pages that have an nfs_page associated
      with them.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      1b3b4a1a
    • Chuck Lever's avatar
      NFS: change NFS mount error return when hostname/pathname too long · 7d1cca72
      Chuck Lever authored
      According to the mount(2) man page, the proper error return code for the
      mount(2) system call when the special device name or the mounted-on
      directory name is too long is ENAMETOOLONG.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      7d1cca72
    • Chuck Lever's avatar
      NFS: Off-by-one length error in string handling · 350c73af
      Chuck Lever authored
      The hostname was getting truncated in the new text-based NFS mount API.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      350c73af
    • Chuck Lever's avatar
      NFS: Return a real error code from mount(2) · fdc6e2c8
      Chuck Lever authored
      Don't filter the return code from the in-kernel rpcbind or NFS mount
      clients.  Return the real error code so that callers of the new NFS
      text-based mount API can apply a useful retry strategy.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      fdc6e2c8
    • Chuck Lever's avatar
      NFS: mount option parser chokes on proto= · fdb66ff4
      Chuck Lever authored
      The new text-based NFS mount option parsing logic doesn't recognize any
      valid transport protocols due to a silly mistake in the protocol token
      matching logic.  This prevents basic mount requests such as:
      
         mount.nfs server:/export /mnt -o proto=tcp
      
      from working with the new text-based NFS mount API.
      Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      fdb66ff4
    • Trond Myklebust's avatar
      NFSv4: Ensure that we pass the correct dentry to nfs4_intent_set_file · deee9369
      Trond Myklebust authored
      This patch fixes an Oops that was reported by Gabriel Barazer.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      deee9369
    • Trond Myklebust's avatar
      NFSv4: Fix a typo in _nfs4_do_open_reclaim · 65bbf6bd
      Trond Myklebust authored
      This should fix the following Oops reported by Jeff Garzik:
      
      kernel BUG at fs/nfs/nfs4xdr.c:1040!
      invalid opcode: 0000 [1] SMP 
      CPU 0 
      Modules linked in: nfs lockd sunrpc af_packet
      ipv6 cpufreq_ondemand acpi_cpufreq battery floppy nvram sg snd_hda_intel
      ata_generic snd_pcm_oss snd_mixer_oss snd_pcm i2c_i801 snd_page_alloc e1000
      firewire_ohci ata_piix i2c_core sr_mod cdrom sata_sil ahci libata sd_mod
      scsi_mod ext3 jbd ehci_hcd uhci_hcd
      Pid: 16353, comm: 10.10.10.1-recl Not tainted 2.6.23-rc3 #1
      RIP: 0010:[<ffffffff88240980>] [<ffffffff88240980>] :nfs:encode_open+0x1c0/0x330
      RSP: 0018:ffff8100467c5c60  EFLAGS: 00010202
      RAX: ffff81000f89b8b8 RBX: 00000000697a6f6d RCX: ffff81000f89b8b8
      RDX: 0000000000000004 RSI: 0000000000000004 RDI: ffff8100467c5c80
      RBP: ffff8100467c5c80 R08: ffff81000f89bc30 R09: ffff81000f89b83f
      R10: 0000000000000001 R11: ffffffff881e79e0 R12: ffff81003cbd1808
      R13: ffff81000f89b860 R14: ffff81005fc984e0 R15: ffffffff88240af0
      FS:  0000000000000000(0000) GS:ffffffff8052a000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 00002adb9e51a030 CR3: 000000007ea7e000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process 10.10.10.1-recl (pid: 16353, threadinfo ffff8100467c4000, task ffff8100038ce780)
      Stack:  ffff81004aeb6a40 ffff81003cbd1808 ffff81003cbd1808 ffffffff88240b5d
       ffff81000f89b8bc ffff81005fc984e8 ffff81000f89bc30 ffff81005fc984e8
       0000000300000000 0000000000000000 0000000000000000 ffff81003cbd1800
      Call Trace:
       [<ffffffff88240b5d>] :nfs:nfs4_xdr_enc_open_noattr+0x6d/0x90
       [<ffffffff881e74b7>] :sunrpc:rpcauth_wrap_req+0x97/0xf0
       [<ffffffff88240af0>] :nfs:nfs4_xdr_enc_open_noattr+0x0/0x90
       [<ffffffff881df57a>] :sunrpc:call_transmit+0x18a/0x290
       [<ffffffff881e5e7b>] :sunrpc:__rpc_execute+0x6b/0x290
       [<ffffffff881dff76>] :sunrpc:rpc_do_run_task+0x76/0xd0
       [<ffffffff882373f6>] :nfs:_nfs4_proc_open+0x76/0x230
       [<ffffffff88237a2e>] :nfs:nfs4_open_recover_helper+0x5e/0xc0
       [<ffffffff88237b74>] :nfs:nfs4_open_recover+0xe4/0x120
       [<ffffffff88238e14>] :nfs:nfs4_open_reclaim+0xa4/0xf0
       [<ffffffff882413c5>] :nfs:nfs4_reclaim_open_state+0x55/0x1b0
       [<ffffffff882417ea>] :nfs:reclaimer+0x2ca/0x390
       [<ffffffff88241520>] :nfs:reclaimer+0x0/0x390
       [<ffffffff8024e59b>] kthread+0x4b/0x80
       [<ffffffff8020cad8>] child_rip+0xa/0x12
       [<ffffffff8024e550>] kthread+0x0/0x80
       [<ffffffff8020cace>] child_rip+0x0/0x12
      
      
      Code: 0f 0b eb fe 48 89 ef c7 00 00 00 00 02 be 08 00 00 00 e8 79 
      RIP  [<ffffffff88240980>] :nfs:encode_open+0x1c0/0x330
       RSP <ffff8100467c5c60>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      65bbf6bd
    • Trond Myklebust's avatar
      NFS: Fix use of cancel_delayed_work_sync in nfs_release_automount_timer · 560aef74
      Trond Myklebust authored
      Doh! We can't use cancel_delayed_work_sync because we may have been called
      from an unmount that was being performed by nfs_automount_task.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      560aef74
    • Ondrej Zary's avatar
      Fix sata_via write errors on PATA drive connected to VT6421 · b4154d4a
      Ondrej Zary authored
      I think that I've found and fixed the problem. There is a copy/paste bug in
      vt6421_set_dma_mode() function which causes wrong values to be written to
      PATA_UDMA_TIMING register.
      
      This patch fixes a copy/paste bug that breaks DMA modes on VT6421 PATA port.
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Acked-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      b4154d4a
    • Jeff Garzik's avatar
      [libata] ata_piix: properly terminate DMI system list · 7d051548
      Jeff Garzik authored
      If you don't terminate a list, bad things happen...
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      7d051548
    • Peter Chubb's avatar
      [IA64] Cleanup HPSIM code (was: Re: Enable early console for Ski simulator) · 7b3166db
      Peter Chubb authored
      After my last patch we have a new header file for HP simulator use.
      Here's code to use it for stuff that used to have `extern' statements
      inline in the code.  Functionality should not change with this patch.
      Signed-off-by: default avatarPeter Chubb <peterc@gelato.unsw.edu.au>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      7b3166db