1. 09 7月, 2009 1 次提交
  2. 02 7月, 2009 11 次提交
    • J
      cifs: add new cifs_iget function and convert unix codepath to use it · cc0bad75
      Jeff Layton 提交于
      cifs: add new cifs_iget function and convert unix codepath to use it
      
      In order to unify some codepaths, introduce a common cifs_fattr struct
      for storing inode attributes. The different codepaths (unix, legacy,
      normal, etc...) can fill out this struct with inode info. It can then be
      passed as an arg to a common set of routines to get and update inodes.
      
      Add a new cifs_iget function that uses iget5_locked to identify inodes.
      This will compare inodes based on the uniqueid value in a cifs_fattr
      struct.
      
      Rather than filling out an already-created inode, have
      cifs_get_inode_info_unix instead fill out cifs_fattr and hand that off
      to cifs_iget. cifs_iget can then properly look for hardlinked inodes.
      
      On the readdir side, add a new cifs_readdir_lookup function that spawns
      populated dentries. Redefine FILE_UNIX_INFO so that it's basically a
      FILE_UNIX_BASIC_INFO that has a few fields wrapped around it. This
      allows us to more easily use the same function for filling out the fattr
      as the non-readdir codepath.
      
      With this, we should then have proper hardlink detection and can
      eventually get rid of some nasty CIFS-specific hacks for handing them.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      cc0bad75
    • R
      kernel-doc: move ignoring kmemcheck · d960eea9
      Randy Dunlap 提交于
      Somehow I managed to generate a diff that put these 2 lines
      into the wrong function:  should have been in dump_struct()
      instead of in dump_enum().
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d960eea9
    • L
      Merge git://git.infradead.org/mtd-2.6 · 5c5d4e8e
      Linus Torvalds 提交于
      * git://git.infradead.org/mtd-2.6:
        mtd: nand: fix build failure and incorrect return from omap_wait()
        mtd: Use BLOCK_NIL consistently in NFTL/INFTL
        mtd: m25p80 timeout too short for worst-case m25p16 devices
        mtd: atmel_nand: Fix typo s/parititions/partitions/
        mtd: cmdlineparts: Use 64-bit format when printing a debug message.
        mtd: maps: Remove BUS_ID_SIZE from integrator_flash
        jffs2: fix another potential leak on error path in scan.c
      5c5d4e8e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · fa172f40
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: invalidation reverse calls
        fuse: allow umask processing in userspace
        fuse: fix bad return value in fuse_file_poll()
        fuse: fix return value of fuse_dev_write()
      fa172f40
    • D
      Fix iommu address space allocation · a15a519e
      David Woodhouse 提交于
      This fixes kernel.org bug #13584. The IOVA code attempted to optimise
      the insertion of new ranges into the rbtree, with the unfortunate result
      that some ranges just didn't get inserted into the tree at all. Then
      those ranges would be handed out more than once, and things kind of go
      downhill from there.
      
      Introduced after 2.6.25 by ddf02886
      ("PCI: iova RB tree setup tweak").
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Cc: mark gross <mgross@linux.intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a15a519e
    • D
      Fix pci_unmap_addr() et al on i386. · 788d84bb
      David Woodhouse 提交于
      We can run a 32-bit kernel on boxes with an IOMMU, so we need
      pci_unmap_addr() etc. to work -- without it, drivers will leak mappings.
      
      To be honest, this whole thing looks like it's more pain than it's
      worth; I'm half inclined to remove the no-op #else case altogether.
      
      But this is the minimal fix, which just does the right thing if
      CONFIG_DMAR is set.
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Cc: stable@kernel.org  [ for 2.6.30 ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      788d84bb
    • A
      elf: fix one check-after-use · e2dbe125
      Amerigo Wang 提交于
      Check before use it.
      Signed-off-by: NWANG Cong <amwang@redhat.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Acked-by: NRoland McGrath <roland@redhat.com>
      Acked-by: NJames Morris <jmorris@namei.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e2dbe125
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 2027bd9f
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        cfq-iosched: remove redundant check for NULL cfqq in cfq_set_request()
        blocK: Restore barrier support for md and probably other virtual devices.
        block: get rid of queue-private command filter
        block: Create bip slabs with embedded integrity vectors
        cfq-iosched: get rid of the need for __GFP_NOFAIL in cfq_find_alloc_queue()
        cfq-iosched: move cfqq initialization out of cfq_find_alloc_queue()
        Trivial typo fixes in Documentation/block/data-integrity.txt.
      2027bd9f
    • L
      Merge branch 'for-linus' of git://neil.brown.name/md · 544ae5f9
      Linus Torvalds 提交于
      * 'for-linus' of git://neil.brown.name/md:
        md: use interruptible wait when duration is controlled by userspace.
        md/raid5: suspend shouldn't affect read requests.
        md: tidy up error paths in md_alloc
        md: fix error path when duplicate name is found on md device creation.
        md: avoid dereferencing NULL pointer when accessing suspend_* sysfs attributes.
        md: Use new topology calls to indicate alignment and I/O sizes
      544ae5f9
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 7b85425f
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (31 commits)
        Revert "ipv4: arp announce, arp_proxy and windows ip conflict verification"
        igb: return PCI_ERS_RESULT_DISCONNECT on permanent error
        e1000e: io_error_detected callback should return PCI_ERS_RESULT_DISCONNECT
        e1000: return PCI_ERS_RESULT_DISCONNECT on permanent error
        e1000: fix unmap bug
        igb: fix unmap length bug
        ixgbe: fix unmap length bug
        ixgbe: Fix link capabilities during adapter resets
        ixgbe: Fix device capabilities of 82599 single speed fiber NICs.
        ixgbe: Fix SFP log messages
        usbnet: Remove private stats structure
        usbnet: Use netdev stats structure
        smsc95xx: Use netdev stats structure
        rndis_host: Use netdev stats structure
        net1080: Use netdev stats structure
        dm9601: Use netdev stats structure
        cdc_eem: Use netdev stats structure
        ipv4: Fix fib_trie rebalancing, part 3
        bnx2x: Fix the behavior of ethtool when ONBOOT=no
        sctp: xmit sctp packet always return no route error
        ...
      7b85425f
    • I
      kmemleak: Fix scheduling-while-atomic bug · 57d81f6f
      Ingo Molnar 提交于
      One of the kmemleak changes caused the following
      scheduling-while-holding-the-tasklist-lock regression on x86:
      
      BUG: sleeping function called from invalid context at mm/kmemleak.c:795
      in_atomic(): 1, irqs_disabled(): 0, pid: 1737, name: kmemleak
      2 locks held by kmemleak/1737:
       #0:  (scan_mutex){......}, at: [<c10c4376>] kmemleak_scan_thread+0x45/0x86
       #1:  (tasklist_lock){......}, at: [<c10c3bb4>] kmemleak_scan+0x1a9/0x39c
      Pid: 1737, comm: kmemleak Not tainted 2.6.31-rc1-tip #59266
      Call Trace:
       [<c105ac0f>] ? __debug_show_held_locks+0x1e/0x20
       [<c102e490>] __might_sleep+0x10a/0x111
       [<c10c38d5>] scan_yield+0x17/0x3b
       [<c10c3970>] scan_block+0x39/0xd4
       [<c10c3bc6>] kmemleak_scan+0x1bb/0x39c
       [<c10c4331>] ? kmemleak_scan_thread+0x0/0x86
       [<c10c437b>] kmemleak_scan_thread+0x4a/0x86
       [<c104d73e>] kthread+0x6e/0x73
       [<c104d6d0>] ? kthread+0x0/0x73
       [<c100959f>] kernel_thread_helper+0x7/0x10
      kmemleak: 834 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
      
      The bit causing it is highly dubious:
      
      static void scan_yield(void)
      {
              might_sleep();
      
              if (time_is_before_eq_jiffies(next_scan_yield)) {
                      schedule();
                      next_scan_yield = jiffies + jiffies_scan_yield;
              }
      }
      
      It called deep inside the codepath and in a conditional way,
      and that is what crapped up when one of the new scan_block()
      uses grew a tasklist_lock dependency.
      
      This minimal patch removes that yielding stuff and adds the
      proper cond_resched().
      
      The background scanning thread could probably also be reniced
      to +10.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57d81f6f
  3. 01 7月, 2009 28 次提交