1. 06 12月, 2009 16 次提交
  2. 03 12月, 2009 3 次提交
    • S
      GFS2: Tag all metadata with jid · 0ab7d13f
      Steven Whitehouse 提交于
      There are two spare field in the header common to all GFS2
      metadata. One is just the right size to fit a journal id
      in it, and this patch updates the journal code so that each
      time a metadata block is modified, we tag it with the journal
      id of the node which is performing the modification.
      
      The reason for this is that it should make it much easier to
      debug issues which arise if we can tell which node was the
      last to modify a particular metadata block.
      
      Since the field is updated before the block is written into
      the journal, each journal should only contain metadata which
      is tagged with its own journal id. The one exception to this
      is the journal header block, which might have a different node's
      id in it, if that journal was recovered by another node in the
      cluster.
      
      Thus each journal will contain a record of which nodes recovered
      it, via the journal header.
      
      The other field in the metadata header could potentially be
      used to hold information about what kind of operation was
      performed, but for the time being we just zero it on each
      transaction so that if we use it for that in future, we'll
      know that the information (where it exists) is reliable.
      
      I did consider using the other field to hold the journal
      sequence number, however since in GFS2's journaling we write
      the modified data into the journal and not the original
      data, this gives no information as to what action caused the
      modification, so I think we can probably come up with a better
      use for those 64 bits in the future.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      0ab7d13f
    • S
      VFS: Export dquot_send_warning · 86e931a3
      Steven Whitehouse 提交于
      Sending a message to userspace in a generic format to warn
      of events (e.g. quota exceeded) in the quota subsystem is
      a generically useful feature. This patch makes some minor
      changes to the send_message function from dquot.c renaming
      it quota_send_message, moving it to quota.c and exporting it
      for use by filesystems which do not use the dquot code.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      86e931a3
    • S
      VFS: Add forget_all_cached_acls() · 796bd952
      Steven Whitehouse 提交于
      This is required for cluster filesystems which want to use
      cached ACLs so that they can invalidate the cache when
      required.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Cc: Alexander Viro <aviro@redhat.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      796bd952
  3. 02 12月, 2009 2 次提交
  4. 01 12月, 2009 2 次提交
    • M
      mfd: Correct WM831X_MAX_ISEL_VALUE · 7716977b
      Mark Brown 提交于
      There was confusion between the array size and the highest ISEL
      value possible.
      Reported-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      7716977b
    • J
      mac80211: fix spurious delBA handling · 827d42c9
      Johannes Berg 提交于
      Lennert Buytenhek noticed that delBA handling in mac80211
      was broken and has remotely triggerable problems, some of
      which are due to some code shuffling I did that ended up
      changing the order in which things were done -- this was
      
        commit d75636ef
        Author: Johannes Berg <johannes@sipsolutions.net>
        Date:   Tue Feb 10 21:25:53 2009 +0100
      
          mac80211: RX aggregation: clean up stop session
      
      and other parts were already present in the original
      
        commit d92684e6
        Author: Ron Rindjunsky <ron.rindjunsky@intel.com>
        Date:   Mon Jan 28 14:07:22 2008 +0200
      
            mac80211: A-MPDU Tx add delBA from recipient support
      
      The first problem is that I moved a BUG_ON before various
      checks -- thereby making it possible to hit. As the comment
      indicates, the BUG_ON can be removed since the ampdu_action
      callback must already exist when the state is != IDLE.
      
      The second problem isn't easily exploitable but there's a
      race condition due to unconditionally setting the state to
      OPERATIONAL when a delBA frame is received, even when no
      aggregation session was ever initiated. All the drivers
      accept stopping the session even then, but that opens a
      race window where crashes could happen before the driver
      accepts it. Right now, a WARN_ON may happen with non-HT
      drivers, while the race opens only for HT drivers.
      
      For this case, there are two things necessary to fix it:
       1) don't process spurious delBA frames, and be more careful
          about the session state; don't drop the lock
      
       2) HT drivers need to be prepared to handle a session stop
          even before the session was really started -- this is
          true for all drivers (that support aggregation) but
          iwlwifi which can be fixed easily. The other HT drivers
          (ath9k and ar9170) are behaving properly already.
      Reported-by: NLennert Buytenhek <buytenh@marvell.com>
      Cc: stable@kernel.org
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      827d42c9
  5. 29 11月, 2009 9 次提交
    • A
      sctp: on T3_RTX retransmit all the in-flight chunks · 5fdd4bae
      Andrei Pelinescu-Onciul 提交于
      When retransmitting due to T3 timeout, retransmit all the
      in-flight chunks for the corresponding  transport/path, including
      chunks sent less then 1 rto ago.
      This is the correct behaviour according to rfc4960 section 6.3.3
      E3 and
      "Note: Any DATA chunks that were sent to the address for which the
       T3-rtx timer expired but did not fit in one MTU (rule E3 above)
       should be marked for retransmission and sent as soon as cwnd
       allows (normally, when a SACK arrives). ".
      
      This fixes problems when more then one path is present and the T3
      retransmission of the first chunk that timeouts stops the T3 timer
      for the initial active path, leaving all the other in-flight
      chunks waiting forever or until a new chunk is transmitted on the
      same path and timeouts (and this will happen only if the cwnd
      allows sending new chunks, but since cwnd was dropped to MTU by
      the timeout => it will wait until the first heartbeat).
      
      Example: 10 packets in flight, sent at 0.1 s intervals on the
      primary path. The primary path is down and the first packet
      timeouts. The first packet is retransmitted on another path, the
      T3 timer for the primary path is stopped and cwnd is set to MTU.
      All the other 9 in-flight packets will not be retransmitted
      (unless more new packets are sent on the primary path which depend
      on cwnd allowing it, and even in this case the 9 packets will be
      retransmitted only after a new packet timeouts which even in the
      best case would be more then RTO).
      
      This commit reverts d0ce9291 and
      also removes the now unused transport->last_rto, introduced in
       b6157d8e.
      
      p.s  The problem is not only when multiple paths are there.  It
      can happen in a single homed environment.  If the application
      stops sending data, it possible to have a hung association.
      Signed-off-by: NAndrei Pelinescu-Onciul <andrei@iptel.org>
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fdd4bae
    • D
      pcmcia: rework the irq_req_t typedef · 5fa9167a
      Dominik Brodowski 提交于
      Most of the irq_req_t typedef'd struct can be re-worked quite
      easily:
      
      (1) IRQInfo2 was unused in any case, so drop it.
      
      (2) IRQInfo1 was used write-only, so drop it.
      
      (3) Instance (private data to be passed to the IRQ handler):
      	Most PCMCIA drivers using pcmcia_request_irq() to actually
      	register an IRQ handler set the "dev_id" to the same pointer
      	as the "priv" pointer in struct pcmcia_device. Modify the two
      	exceptions (ipwireless, ibmtr_cs) to also work this waym and
      	set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
      
      (4) Handler is to be of type irq_handler_t.
      
      (5) Handler != NULL already tells whether an IRQ handler is present.
      	Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
      	irq_req_t.Attributes.
      
      CC: netdev@vger.kernel.org
      CC: linux-bluetooth@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: alsa-devel@alsa-project.org
      CC: Jaroslav Kysela <perex@perex.cz>
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: Karsten Keil <isdn@linux-pingi.de>
      for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      5fa9167a
    • D
      pcmcia: remove deprecated handle_to_dev() macro · dd2e5a15
      Dominik Brodowski 提交于
      Update remaining users and remove deprecated handle_to_dev() macro
      
      CC: Harald Welte <laforge@gnumonks.org>
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-serial@vger.kernel.org
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      dd2e5a15
    • D
      pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer · 6838b03f
      Dominik Brodowski 提交于
      pcmcia_request_window() only needs a pointer to struct pcmcia_device, not
      a pointer to a pointer.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      Acked-by: Karsten Keil <keil@b1-systems.de> (for ISDN)
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      6838b03f
    • D
      82f88e36
    • M
      pcmcia: Change window_handle_t logic to unsigned long · 0bdf9b3d
      Magnus Damm 提交于
      Logic changes based on top of the other patches:
      
      This set of patches changed window_handle_t from being a pointer to an
      unsigned long. The unsigned long is now a simple index into socket->win[].
      Going from a pointer to unsigned long should leave the user space interface
      unchanged unless I'm mistaken.
      
      This change results in code that is less error prone and a user space
      interface which is much cleaner and safer. A nice side effect is that we
      are also are able to remove all members except one from window_t.
      
      [ linux@dominikbrodowski.net:
      	Update to 2.6.31. Also, a plain "index" to socket->win[] does not
      	work, as several codepaths rely on "window_handle_t" being
      	non-zero if used. Therefore, set the window_handle_t to the
      	socket->win[] index + 1. ]
      
      CC: netdev@vger.kernel.org
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      0bdf9b3d
    • M
      pcmcia: Pass struct pcmcia_socket to pcmcia_get_mem_page() · 16456eba
      Magnus Damm 提交于
      No logic changes, just pass struct pcmcia_socket to pcmcia_get_mem_page()
      
      [linux@dominikbrodowski.net: update to 2.6.31]
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      16456eba
    • M
      pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page() · 868575d1
      Magnus Damm 提交于
      No logic changes, just pass struct pcmcia_device to pcmcia_map_mem_page()
      
      [linux@dominikbrodowski.net: update to 2.6.31]
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      Acked-by: Karsten Keil <keil@b1-systems.de> (for ISDN)
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      868575d1
    • M
      pcmcia: Pass struct pcmcia_device to pcmcia_release_window() · f5560da5
      Magnus Damm 提交于
      No logic changes, just pass struct pcmcia_device to pcmcia_release_window().
      
      [linux@dominikbrodowski.net: update to 2.6.31]
      CC: netdev@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      f5560da5
  6. 26 11月, 2009 2 次提交
    • J
      [SCSI] fix async scan add/remove race resulting in an oops · 860dc736
      James Bottomley 提交于
      Async scanning introduced a very wide window where the SCSI device is
      up and running but has not yet been added to sysfs.  We delay the
      adding until all scans have completed to retain the same ordering as
      sync scanning.
      
      This delay in visibility causes an oops if a device is removed before
      we make it visible because the SCSI removal routines have an inbuilt
      assumption that if a device is in SDEV_RUNNING state, it must be
      visible (which is not necessarily true in the async scanning case).
      
      Fix this by introducing an additional is_visible flag which we can use
      to condition the tear down so we do the right thing for running but
      not yet made visible.
      Reported-by: NAlexey Kuznetsov <kuznet@ms2.inr.ac.ru>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      860dc736
    • L
      tracing: Separate raw syscall from syscall tracer · b8007ef7
      Lai Jiangshan 提交于
      The current syscall tracer mixes raw syscalls and real syscalls.
      
      echo 1 > events/syscalls/enable
      And we get these from the output:
      
      (XXXX insteads "            grep-20914 [001] 588211.446347" .. etc)
      
      XXXX: sys_read(fd: 3, buf: 80609a8, count: 7000)
      XXXX: sys_enter: NR 3 (3, 80609a8, 7000, a, 1000, bfce8ef8)
      XXXX: sys_read -> 0x138
      XXXX: sys_exit: NR 3 = 312
      XXXX: sys_read(fd: 3, buf: 8060ae0, count: 7000)
      XXXX: sys_enter: NR 3 (3, 8060ae0, 7000, a, 1000, bfce8ef8)
      XXXX: sys_read -> 0x138
      XXXX: sys_exit: NR 3 = 312
      
      There are 2 drawbacks here.
      A) two almost identical records are saved in ringbuffer
         when a syscall enters or exits. (4 records for every syscall)
         This wastes precious space in the ring buffer.
      B) the lines including "sys_enter/sys_exit" produces
         hardly any useful information for the output (no labels).
      
      The user can use this method to prevent these drawbacks:
      echo 1 > events/syscalls/enable
      echo 0 > events/syscalls/sys_enter/enable
      echo 0 > events/syscalls/sys_exit/enable
      
      But this is not user friendly. So we separate raw syscall
      from syscall tracer.
      
      After this fix applied:
      syscall tracer's output (echo 1 > events/syscalls/enable):
      
      XXXX: sys_read(fd: 3, buf: bfe87d88, count: 200)
      XXXX: sys_read -> 0x200
      XXXX: sys_fstat64(fd: 3, statbuf: bfe87c98)
      XXXX: sys_fstat64 -> 0x0
      XXXX: sys_close(fd: 3)
      
      raw syscall tracer's output (echo 1 > events/raw_syscalls/enable):
      
      XXXX: sys_enter: NR 175 (0, bf92bf18, bf92bf98, 8, b748cff4, bf92bef8)
      XXXX: sys_exit: NR 175 = 0
      XXXX: sys_enter: NR 175 (2, bf92bf98, 0, 8, b748cff4, bf92bef8)
      XXXX: sys_exit: NR 175 = 0
      XXXX: sys_enter: NR 3 (9, bf927f9c, 4000, b77e2518, b77dce60, bf92bff8)
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      LKML-Reference: <4AEFC37C.5080609@cn.fujitsu.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      b8007ef7
  7. 24 11月, 2009 3 次提交
    • T
      locking: Use __[SPIN|RW]_LOCK_UNLOCKED in [spin|rw]_lock_init() · a49ed0bf
      Thomas Gleixner 提交于
      SPIN_LOCK_UNLOCKED and RW_LOCK_UNLOCKED are deprecated. Replace them
      with the __*_LOCK_UNLOCKED variants.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      a49ed0bf
    • T
      locking: Remove unused prototype · c9286b7e
      Thomas Gleixner 提交于
      commit 910067d1(remove generic__raw_read_trylock()) removed the
      implementation but left the prototype around. Remove it.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      c9286b7e
    • S
      remove CONFIG_SECURITY_FILE_CAPABILITIES compile option · b3a222e5
      Serge E. Hallyn 提交于
      As far as I know, all distros currently ship kernels with default
      CONFIG_SECURITY_FILE_CAPABILITIES=y.  Since having the option on
      leaves a 'no_file_caps' option to boot without file capabilities,
      the main reason to keep the option is that turning it off saves
      you (on my s390x partition) 5k.  In particular, vmlinux sizes
      came to:
      
      without patch fscaps=n:		 	53598392
      without patch fscaps=y:		 	53603406
      with this patch applied:		53603342
      
      with the security-next tree.
      
      Against this we must weigh the fact that there is no simple way for
      userspace to figure out whether file capabilities are supported,
      while things like per-process securebits, capability bounding
      sets, and adding bits to pI if CAP_SETPCAP is in pE are not supported
      with SECURITY_FILE_CAPABILITIES=n, leaving a bit of a problem for
      applications wanting to know whether they can use them and/or why
      something failed.
      
      It also adds another subtly different set of semantics which we must
      maintain at the risk of severe security regressions.
      
      So this patch removes the SECURITY_FILE_CAPABILITIES compile
      option.  It drops the kernel size by about 50k over the stock
      SECURITY_FILE_CAPABILITIES=y kernel, by removing the
      cap_limit_ptraced_target() function.
      
      Changelog:
      	Nov 20: remove cap_limit_ptraced_target() as it's logic
      		was ifndef'ed.
      Signed-off-by: NSerge E. Hallyn <serue@us.ibm.com>
      Acked-by: NAndrew G. Morgan" <morgan@kernel.org>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      b3a222e5
  8. 23 11月, 2009 2 次提交
    • P
      rcu: Re-arrange code to reduce #ifdef pain · 6ebb237b
      Paul E. McKenney 提交于
      Remove #ifdefs from kernel/rcupdate.c and
      include/linux/rcupdate.h by moving code to
      include/linux/rcutiny.h, include/linux/rcutree.h, and
      kernel/rcutree.c.
      
      Also remove some definitions that are no longer used.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1258908830885-git-send-email->
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6ebb237b
    • P
      rcu: Eliminate unneeded function wrapping · 9f680ab4
      Paul E. McKenney 提交于
      The functions rcu_init() is a wrapper for __rcu_init(), and also
      sets up the CPU-hotplug notifier for rcu_barrier_cpu_hotplug().
      But TINY_RCU doesn't need CPU-hotplug notification, and the
      rcu_barrier_cpu_hotplug() is a simple wrapper for
      rcu_cpu_notify().
      
      So push rcu_init() out to kernel/rcutree.c and kernel/rcutiny.c
      and get rid of the wrapper function rcu_barrier_cpu_hotplug().
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <12589088302320-git-send-email->
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9f680ab4
  9. 20 11月, 2009 1 次提交