1. 22 Jan, 2010 23 commits
  2. 18 Jan, 2010 17 commits
    • Greg Kroah-Hartman's avatar
      Linux 2.6.32.4 · 3df76730
      Greg Kroah-Hartman authored
      3df76730
    • David Woodhouse's avatar
      agp/intel-agp: Clear entire GTT on startup · 58779608
      David Woodhouse authored
      commit fc619013 upstream.
      
      Some BIOSes fail to initialise the GTT, which will cause DMA faults when
      the IOMMU is enabled. We need to clear the whole thing to point at the
      scratch page, not just the part that Linux is going to use.
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      [anholt: Note that this may also help with stability in the presence of
      driver bugs, by not drawing to memory we don't own]
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      58779608
    • David S. Miller's avatar
      ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). · 5deb72ed
      David S. Miller authored
      commit 2570a4f5 upstream.
      
      This fixes CERT-FI FICORA #341748
      
      Discovered by Olli Jarva and Tuomo Untinen from the CROSS
      project at Codenomicon Ltd.
      
      Just like in CVE-2007-4567, we can't rely upon skb_dst() being
      non-NULL at this point.  We fixed that in commit
      e76b2b25 ("[IPV6]: Do no rely on
      skb->dst before it is assigned.")
      
      However commit 483a47d2 ("ipv6: added
      net argument to IP6_INC_STATS_BH") put a new version of the same bug
      into this function.
      
      Complicating analysis further, this bug can only trigger when network
      namespaces are enabled in the build.  When namespaces are turned off,
      the dev_net() does not evaluate it's argument, so the dereference
      would not occur.
      
      So, for a long time, namespaces couldn't be turned on unless SYSFS was
      disabled.  Therefore, this code has largely been disabled except by
      people turning it on explicitly for namespace development.
      
      With help from Eugene Teo <eugene@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5deb72ed
    • Rusty Russell's avatar
      module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y · 54f1b39c
      Rusty Russell authored
      commit d4703aef upstream.
      
      powerpc applies relocations to the kcrctab.  They're absolute symbols,
      but it's not completely unreasonable: other archs may too, but the
      relocation is often 0.
      
      http://lists.ozlabs.org/pipermail/linuxppc-dev/2009-November/077972.htmlInspired-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Tested-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      54f1b39c
    • Al Viro's avatar
      fix more leaks in audit_tree.c tag_chunk() · 9ef9a7c7
      Al Viro authored
      commit b4c30aad upstream.
      
      Several leaks in audit_tree didn't get caught by commit
      318b6d3d, including the leak on normal
      exit in case of multiple rules refering to the same chunk.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9ef9a7c7
    • Al Viro's avatar
      fix braindamage in audit_tree.c untag_chunk() · dffaea5b
      Al Viro authored
      commit 6f5d5114 upstream.
      
      ... aka "Al had badly fscked up when writing that thing and nobody
      noticed until Eric had fixed leaks that used to mask the breakage".
      
      The function essentially creates a copy of old array sans one element
      and replaces the references to elements of original (they are on cyclic
      lists) with those to corresponding elements of new one.  After that the
      old one is fair game for freeing.
      
      First of all, there's a dumb braino: when we get to list_replace_init we
      use indices for wrong arrays - position in new one with the old array
      and vice versa.
      
      Another bug is more subtle - termination condition is wrong if the
      element to be excluded happens to be the last one.  We shouldn't go
      until we fill the new array, we should go until we'd finished the old
      one.  Otherwise the element we are trying to kill will remain on the
      cyclic lists...
      
      That crap used to be masked by several leaks, so it was not quite
      trivial to hit.  Eric had fixed some of those leaks a while ago and the
      shit had hit the fan...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      dffaea5b
    • Johannes Berg's avatar
      mac80211: fix skb buffering issue (and fixes to that) · d3b1e3bf
      Johannes Berg authored
      This is a backport of the mainline patches
      
       cf0277e7
       045cfb71
       b49bb574
      
      Here is the description of the first of
      those patches (the other two just fixed
      bugs added by that patch):
      
      Since I removed the master netdev, we've been
      keeping internal queues only, and even before
      that we never told the networking stack above
      the virtual interfaces about congestion. This
      means that packets are queued in mac80211 and
      the upper layers never know, possibly leading
      to memory exhaustion and other problems.
      
      This patch makes all interfaces multiqueue and
      uses ndo_select_queue to put the packets into
      queues per AC. Additionally, when the driver
      stops a queue, we now stop all corresponding
      queues for the virtual interfaces as well.
      
      The injection case will use VO by default for
      non-data frames, and BE for data frames, but
      downgrade any data frames according to ACM. It
      needs to be fleshed out in the future to allow
      chosing the queue/AC in radiotap.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Cc: John W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d3b1e3bf
    • Mike Frysinger's avatar
      kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr · 71c77079
      Mike Frysinger authored
      Stable commit 0399123f didn't match the
      original upstream commit.  The CONFIG_MMU check was added much too early
      in the list disabling a lot of proc entries in the process.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      71c77079
    • Samuel Ortiz's avatar
      libertas: Remove carrier signaling from the scan code · 904e3733
      Samuel Ortiz authored
      commit 659c8e52 upstream.
      
      There is no reason to signal a carrier off when doing a 802.11 scan.
      
      Cc: Holger Schurig <holgerschurig@gmail.com>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      Acked-by: default avatarDan Williams <dcbw@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      904e3733
    • Jesse Barnes's avatar
      drm/i915: remove render reclock support · b9945e75
      Jesse Barnes authored
      commit cda9d05c upstream.
      
      This code generally fails to adjust the render clock, and when it does,
      it conflicts with some other register settings and can cause problems.
      
      So remove this code altogether.  I'm reworking it now to do the right
      thing, but the only bit it will share is the VBT check for whether
      reclocking is supported, so I'm leaving that bit.
      
      Reverts most of 652c393a ("add dynamic
      clock frequency control"), though for many the regressions showed up
      in the later 181a5336 ("Fix render
      reclock availability detection").
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b9945e75
    • Felix Fietkau's avatar
      mac80211: add missing sanity checks for action frames · 9b13cca3
      Felix Fietkau authored
      commit d7907448 upstream.
      
      Various missing sanity checks caused rejected action frames to be
      interpreted as channel switch announcements, which can cause a client
      mode interface to switch away from its operating channel, thereby losing
      connectivity. This patch ensures that only spectrum management action
      frames are processed by the CSA handling function and prevents rejected
      action frames from getting processed by the MLME code.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9b13cca3
    • Dan Carpenter's avatar
      iwl: off by one bug · 0ea5505e
      Dan Carpenter authored
      commit 8a9ac160 upstream.
      
      tid is used as an array offset.
      	agg = &priv->stations[sta_id].tid[tid].agg;
      	iwl4965_tx_status_reply_tx(priv, agg, tx_resp, txq_id, index);
      
      It should be limitted to MAX_TID_COUNT - 1;
              struct iwl_tid_data tid[MAX_TID_COUNT];
      
      regards,
      dan carpenter
      Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0ea5505e
    • Luis R. Rodriguez's avatar
      cfg80211: fix syntax error on user regulatory hints · 724ad426
      Luis R. Rodriguez authored
      commit e12822e1 upstream.
      
      This fixes a syntax error when setting up the user regulatory
      hint. This change yields the same exact binary object though
      so it ends up just being a syntax typo fix, fortunately.
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      724ad426
    • Luis R. Rodriguez's avatar
      ath5k: Fix eeprom checksum check for custom sized eeproms · e6efac7b
      Luis R. Rodriguez authored
      commit 359207c6 upstream.
      
      Commit 8bf3d79b enabled EEPROM
      checksum checks to avoid bogus bug reports but failed to address
      updating the code to consider devices with custom EEPROM sizes.
      Devices with custom sized EEPROMs have the upper limit size stuffed
      in the EEPROM. Use this as the upper limit instead of the static
      default size. In case of a checksum error also provide back the
      max size and whether or not this was the default size or a custom
      one. If the EEPROM is busted we add a failsafe check to ensure
      we don't loop forever or try to read bogus areas of hardware.
      
      This closes bug 14874
      
      http://bugzilla.kernel.org/show_bug.cgi?id=14874
      
      Cc: David Quan <david.quan@atheros.com>
      Cc: Stephen Beahm <stephenbeahm@comcast.net>
      Reported-by: default avatarJoshua Covington <joshuacov@googlemail.com>
      Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e6efac7b
    • Zhu Yi's avatar
      iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr · fc95845f
      Zhu Yi authored
      commit c8106d76 upstream.
      
      When txq read_ptr equals to write_ptr, iwl_queue_used should
      always return false. Because there is no used TFD in this case.
      
      This is a complementary fix to the fix already included in commit "iwl3945:
      fix panic in iwl3945 driver". Both fixes are needed to address the panic
      below.
      
      This problem was discussed on linux-wireless in
      http://thread.gmane.org/gmane.linux.kernel.wireless.general/43568
      
      <1>[ 7290.414172] IP: [<ffffffffa0dd53a1>] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945]
      <4>[ 7290.414205] PGD 0
      <1>[ 7290.414214] Thread overran stack, or stack corrupted
      <0>[ 7290.414229] Oops: 0002 [#1] PREEMPT SMP
      <0>[ 7290.414246] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
      <4>[ 7290.414265] CPU 0
      <4>[ 7290.414274] Modules linked in: af_packet nfsd usb_storage usb_libusual cpufreq_powersave exportfs cpufreq_conservative iwl3945 nfs cpufreq_userspace snd_hda_codec_realtek acpi_cpufreq uvcvideo lockd iwlcore snd_hda_intel joydev coretemp nfs_acl videodev snd_hda_codec mac80211 v4l1_compat snd_hwdep sbp2 v4l2_compat_ioctl32 uhci_hcd psmouse auth_rpcgss ohci1394 cfg80211 ehci_hcd video ieee1394 snd_pcm serio_raw battery ac nvidia(P) usbcore output sunrpc evdev lirc_ene0100 snd_page_alloc rfkill tg3 libphy fuse lzo lzo_decompress lzo_compress
      <6>[ 7290.414486] Pid: 0, comm: swapper Tainted: P           2.6.32-rc8-wl #213 Aspire 5720
      <6>[ 7290.414507] RIP: 0010:[<ffffffffa0dd53a1>]  [<ffffffffa0dd53a1>] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945]
      <6>[ 7290.414541] RSP: 0018:ffff880002203d60  EFLAGS: 00010246
      <6>[ 7290.414557] RAX: 000000000000004f RBX: ffff880064c11600 RCX: 0000000000000013
      <6>[ 7290.414576] RDX: ffffffffa0ddcf20 RSI: ffff8800512b7008 RDI: 0000000000000038
      <6>[ 7290.414596] RBP: ffff880002203dd0 R08: 0000000000000000 R09: 0000000000000100
      <6>[ 7290.414616] R10: 0000000000000001 R11: 0000000000000000 R12: 00000000000000a0
      <6>[ 7290.414635] R13: 0000000000000002 R14: 0000000000000013 R15: 0000000000020201
      <6>[ 7290.414655] FS:  0000000000000000(0000) GS:ffff880002200000(0000) knlGS:0000000000000000
      <6>[ 7290.414677] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      <6>[ 7290.414693] CR2: 0000000000000041 CR3: 0000000001001000 CR4: 00000000000006f0
      <6>[ 7290.414712] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      <6>[ 7290.414732] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      <4>[ 7290.414752] Process swapper (pid: 0, threadinfo ffffffff81524000, task ffffffff81528b60)
      <0>[ 7290.414772] Stack:
      <4>[ 7290.414780]  ffff880002203da0 0000000000000046 0000000000000000 0000000000000046
      <4>[ 7290.414804] <0> 0000000000000282 0000000000000282 0000000000000282 ffff880064c12010
      <4>[ 7290.414830] <0> ffff880002203db0 ffff880064c11600 ffff880064c12e50 ffff8800512b7000
      <0>[ 7290.414858] Call Trace:
      <0>[ 7290.414867]  <IRQ>
      <4>[ 7290.414884]  [<ffffffffa0dc8c47>] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945]
      <4>[ 7290.414910]  [<ffffffff8138fc60>] ? _spin_unlock+0x30/0x60
      <4>[ 7290.414931]  [<ffffffff81049a21>] tasklet_action+0x101/0x110
      <4>[ 7290.414950]  [<ffffffff8104a3d0>] __do_softirq+0xc0/0x160
      <4>[ 7290.414968]  [<ffffffff8100d01c>] call_softirq+0x1c/0x30
      <4>[ 7290.414986]  [<ffffffff8100eff5>] do_softirq+0x75/0xb0
      <4>[ 7290.415003]  [<ffffffff81049ee5>] irq_exit+0x95/0xa0
      <4>[ 7290.415020]  [<ffffffff8100e547>] do_IRQ+0x77/0xf0
      <4>[ 7290.415038]  [<ffffffff8100c7d3>] ret_from_intr+0x0/0xf
      <0>[ 7290.415052]  <EOI>
      <4>[ 7290.415067]  [<ffffffff81234efa>] ? acpi_idle_enter_bm+0x270/0x2a5
      <4>[ 7290.415087]  [<ffffffff81234f04>] ? acpi_idle_enter_bm+0x27a/0x2a5
      <4>[ 7290.415107]  [<ffffffff81234efa>] ? acpi_idle_enter_bm+0x270/0x2a5
      <4>[ 7290.415130]  [<ffffffff812c11f3>] ? cpuidle_idle_call+0x93/0xf0
      <4>[ 7290.415149]  [<ffffffff8100b0d7>] ? cpu_idle+0xa7/0x110
      <4>[ 7290.415168]  [<ffffffff8137b3d5>] ? rest_init+0x75/0x80
      <4>[ 7290.415187]  [<ffffffff8158cd0a>] ? start_kernel+0x3a7/0x3b3
      <4>[ 7290.415206]  [<ffffffff8158c315>] ? x86_64_start_reservations+0x125/0x129
      <4>[ 7290.415227]  [<ffffffff8158c3fd>] ? x86_64_start_kernel+0xe4/0xeb
      <0>[ 7290.415243] Code: 00 41 39 ce 0f 8d e8 01 00 00 48 8b 47 40 48 63 d2 48 69 d2 98 00 00 00 4c 8b 04 02 48 c7 c2 20 cf dd a0 49 8d 78 38 49 8d 40 4f <c6> 47 09 00 c6 47 0c 00 c6 47 0f 00 c6 47 12 00 c6 47 15 00 49
      <1>[ 7290.415382] RIP  [<ffffffffa0dd53a1>] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945]
      <4>[ 7290.415410]  RSP <ffff880002203d60>
      <0>[ 7290.415421] CR2: 0000000000000041
      <4>[ 7290.415436] ---[ end trace ec46807277caa515 ]---
      <0>[ 7290.415450] Kernel panic - not syncing: Fatal exception in interrupt
      <4>[ 7290.415468] Pid: 0, comm: swapper Tainted: P      D    2.6.32-rc8-wl #213
      <4>[ 7290.415486] Call Trace:
      <4>[ 7290.415495]  <IRQ>  [<ffffffff8138c040>] panic+0x7d/0x13a
      <4>[ 7290.415519]  [<ffffffff8101071a>] oops_end+0xda/0xe0
      <4>[ 7290.415538]  [<ffffffff8102e1ea>] no_context+0xea/0x250
      <4>[ 7290.415557]  [<ffffffff81038991>] ? select_task_rq_fair+0x511/0x780
      <4>[ 7290.415578]  [<ffffffff8102e475>] __bad_area_nosemaphore+0x125/0x1e0
      <4>[ 7290.415597]  [<ffffffff81038d0c>] ? __enqueue_entity+0x7c/0x80
      <4>[ 7290.415616]  [<ffffffff81039201>] ? enqueue_task_fair+0x111/0x150
      <4>[ 7290.415636]  [<ffffffff8102e53e>] bad_area_nosemaphore+0xe/0x10
      <4>[ 7290.415656]  [<ffffffff8102e8fa>] do_page_fault+0x26a/0x320
      <4>[ 7290.415674]  [<ffffffff813905df>] page_fault+0x1f/0x30
      <4>[ 7290.415697]  [<ffffffffa0dd53a1>] ? iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945]
      <4>[ 7290.415723]  [<ffffffffa0dc8c47>] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945]
      <4>[ 7290.415746]  [<ffffffff8138fc60>] ? _spin_unlock+0x30/0x60
      <4>[ 7290.415764]  [<ffffffff81049a21>] tasklet_action+0x101/0x110
      <4>[ 7290.415783]  [<ffffffff8104a3d0>] __do_softirq+0xc0/0x160
      <4>[ 7290.415801]  [<ffffffff8100d01c>] call_softirq+0x1c/0x30
      <4>[ 7290.415818]  [<ffffffff8100eff5>] do_softirq+0x75/0xb0
      <4>[ 7290.415835]  [<ffffffff81049ee5>] irq_exit+0x95/0xa0
      <4>[ 7290.415852]  [<ffffffff8100e547>] do_IRQ+0x77/0xf0
      <4>[ 7290.415869]  [<ffffffff8100c7d3>] ret_from_intr+0x0/0xf
      <4>[ 7290.415883]  <EOI>  [<ffffffff81234efa>] ? acpi_idle_enter_bm+0x270/0x2a5
      <4>[ 7290.415911]  [<ffffffff81234f04>] ? acpi_idle_enter_bm+0x27a/0x2a5
      <4>[ 7290.415931]  [<ffffffff81234efa>] ? acpi_idle_enter_bm+0x270/0x2a5
      <4>[ 7290.415952]  [<ffffffff812c11f3>] ? cpuidle_idle_call+0x93/0xf0
      <4>[ 7290.415971]  [<ffffffff8100b0d7>] ? cpu_idle+0xa7/0x110
      <4>[ 7290.415989]  [<ffffffff8137b3d5>] ? rest_init+0x75/0x80
      <4>[ 7290.416007]  [<ffffffff8158cd0a>] ? start_kernel+0x3a7/0x3b3
      <4>[ 7290.416026]  [<ffffffff8158c315>] ? x86_64_start_reservations+0x125/0x129
      <4>[ 7290.416047]  [<ffffffff8158c3fd>] ? x86_64_start_kernel+0xe4/0xeb
      Reported-by: default avatarMaxim Levitsky <maximlevitsky@gmail.com>
      Tested-by: default avatarMaxim Levitsky <maximlevitsky@gmail.com>
      Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      fc95845f
    • Ian Campbell's avatar
      xen: fix hang on suspend. · a111c28a
      Ian Campbell authored
      commit c5cae661 upstream.
      
      In 65f63384 "xen: improve error handling in do_suspend" I said:
          - xs_suspend()/xs_resume() and dpm_suspend_noirq()/dpm_resume_noirq() were not
            nested in the obvious way.
      and changed the ordering of the calls as so:
          BEFORE		AFTER
          xs_suspend		dpm_suspend_noirq
          dpm_suspend_noirq	xs_suspend
          *SUSPEND*		*SUSPEND*
          dpm_resume_noirq	dpm_resume_noirq
          xs_resume		xs_resume
      Clearly this is not an improvement and I was talking rubbish.
      
      In particular the new ordering is susceptible to a hang if a xenstore write is
      in progress at the point at which the suspend kicks in. When the suspend
      process calls xs_suspend it tries to take the request_mutex but if a write is
      in progress it could be looping in xenbus_xs.c:read_reply() waiting for
      something to arrive on &xs_state.reply_list while holding the request_mutex
      (taken in the caller of read_reply).
      
      However if we have done dpm_suspend_noirq before xs_suspend then we won't get
      any more xenstore interrupts and process_msg() will never be woken up to add
      anything to the reply_list.
      
      Fix this by calling xs_suspend before dpm_suspend_noirq. If dpm_suspend_noirq
      fails then make sure we go through the xs_suspend_cancel() code path.
      Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
      Acked-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a111c28a
    • Jan Kara's avatar
      quota: Fix dquot_transfer for filesystems different from ext4 · 38c4d8d5
      Jan Kara authored
      commit 05b5d898 upstream.
      
      Commit fd8fbfc1 modified the way we find amount of reserved space
      belonging to an inode. The amount of reserved space is checked
      from dquot_transfer and thus inode_reserved_space gets called
      even for filesystems that don't provide get_reserved_space callback
      which results in a BUG.
      
      Fix the problem by checking get_reserved_space callback and return 0 if
      the filesystem does not provide it.
      
      CC: Dmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      38c4d8d5