]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- up to 2.6.38.1; add xfs anti-oom fix for mounts with quota and many inodes
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 24 Mar 2011 12:46:56 +0000 (12:46 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    kernel-multiarch.config -> 1.63
    kernel-small_fixes.patch -> 1.23
    kernel.spec -> 1.895

kernel-multiarch.config
kernel-small_fixes.patch
kernel.spec

index 1eca6e602e60645c39a99353192a0768dfd4c5c1..a03f17179220b5202d80311cfdb4bdcbecc032c0 100644 (file)
@@ -775,6 +775,7 @@ HIDRAW all=y
 #- file drivers/hid/usbhid/Kconfig goes here
 HID_3M_PCT all=m
 HID_A4TECH all=m
+HID_ACRUX all=m
 HID_ACRUX_FF all=m
 HID_APPLE all=m
 HID_BELKIN all=m
@@ -6195,6 +6196,9 @@ SUSPEND all=y
 SUSPEND_FREEZER ppc=y ppc64=y
 HIBERNATION all=y
 PM_STD_PARTITION all=""
+#- Image Storage (you need at least one allocator)
+#- General Options
+#- No compression support available without Cryptoapi support.
 APM_EMULATION ppc=m
 PM_RUNTIME all=y
 
index c74708f57ca945a536dadc41e5602b1bd3f4b0bc..99422ddc9bdfab119bc5bf683cd7e972f29b4c35 100644 (file)
@@ -117,89 +117,73 @@ index 2494842..edf37aa 100644
        sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
  }
 
-From: Gustavo F. Padovan <padovan@profusion.mobi>
-Date: Wed, 16 Mar 2011 18:36:29 +0000 (-0300)
-Subject: Bluetooth: Fix HCI_RESET command synchronization
-X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpadovan%2Fbluetooth-next-2.6.git;a=commitdiff_plain;h=b99faf1b798d6d0e33526fd2cef55a405c08ff09;hp=58b6e124aac64bebb2e9e1a136cbd21a5ab0485a
 
-Bluetooth: Fix HCI_RESET command synchronization
-
-We can't send new commands before a cmd_complete for the HCI_RESET command
-shows up.
-
-Reported-by: Mikko Vinni <mmvinni@yahoo.com>
-Reported-by: Justin P. Mattock <justinmattock@gmail.com>
-Reported-by: Ed Tomlinson <edt@aei.ca>
-Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
-Tested-by: Justin P. Mattock <justinmattock@gmail.com>
-Tested-by: Mikko Vinni <mmvinni@yahoo.com>
-Tested-by: Ed Tomlinson <edt@aei.ca>
----
-
-diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
-index ec6acf2..2c0d309 100644
---- a/include/net/bluetooth/hci.h
-+++ b/include/net/bluetooth/hci.h
-@@ -84,6 +84,8 @@ enum {
-       HCI_SERVICE_CACHE,
-       HCI_LINK_KEYS,
-       HCI_DEBUG_KEYS,
+--- linux-2.6.37/fs//xfs/linux-2.6/xfs_super.c.org     2011-03-23 09:08:50.511734576 +0100
++++ linux-2.6.37/fs//xfs/linux-2.6/xfs_super.c 2011-03-23 09:13:58.385845623 +0100
+@@ -1566,13 +1566,17 @@
+       if (error)
+               goto out_free_sb;
+-      error = xfs_mountfs(mp);
+-      if (error)
+-              goto out_filestream_unmount;
+-
+       if (mp->m_flags & XFS_MOUNT_TAGGED)
+               sb->s_flags |= MS_TAGGED;
++      /*
++       * we must configure the block size in the superblock before we run the
++       * full mount process as the mount process can lookup and cache inodes.
++       * For the same reason we must also initialise the syncd and register
++       * the inode cache shrinker so that inodes can be reclaimed during
++       * operations like a quotacheck that iterate all inodes in the
++       * filesystem.
++       */
+       sb->s_magic = XFS_SB_MAGIC;
+       sb->s_blocksize = mp->m_sb.sb_blocksize;
+       sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1;
+@@ -1580,6 +1584,16 @@
+       sb->s_time_gran = 1;
+       set_posix_acl_flag(sb);
++      error = xfs_syncd_init(mp);
++      if (error)
++              goto out_filestream_unmount;
 +
-+      HCI_RESET,
- };
- /* HCI ioctl defines */
-diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
-index b372fb8..92b48e2 100644
---- a/net/bluetooth/hci_core.c
-+++ b/net/bluetooth/hci_core.c
-@@ -186,6 +186,7 @@ static void hci_reset_req(struct hci_dev *hdev, unsigned long opt)
-       BT_DBG("%s %ld", hdev->name, opt);
-       /* Reset device */
-+      set_bit(HCI_RESET, &hdev->flags);
-       hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
- }
-@@ -213,8 +214,10 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
-       /* Mandatory initialization */
-       /* Reset */
--      if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks))
-+      if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) {
-+                      set_bit(HCI_RESET, &hdev->flags);
-                       hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
-+      }
-       /* Read Local Supported Features */
-       hci_send_cmd(hdev, HCI_OP_READ_LOCAL_FEATURES, 0, NULL);
-@@ -1074,6 +1077,7 @@ static void hci_cmd_timer(unsigned long arg)
-       BT_ERR("%s command tx timeout", hdev->name);
-       atomic_set(&hdev->cmd_cnt, 1);
-+      clear_bit(HCI_RESET, &hdev->flags);
-       tasklet_schedule(&hdev->cmd_task);
- }
-diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
-index 3fbfa50..cebe7588 100644
---- a/net/bluetooth/hci_event.c
-+++ b/net/bluetooth/hci_event.c
-@@ -183,6 +183,8 @@ static void hci_cc_reset(struct hci_dev *hdev, struct sk_buff *skb)
-       BT_DBG("%s status 0x%x", hdev->name, status);
-+      clear_bit(HCI_RESET, &hdev->flags);
++      xfs_inode_shrinker_register(mp);
 +
-       hci_req_complete(hdev, HCI_OP_RESET, status);
- }
-@@ -1847,7 +1849,7 @@ static inline void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb)
-       if (ev->opcode != HCI_OP_NOP)
-               del_timer(&hdev->cmd_timer);
--      if (ev->ncmd) {
-+      if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) {
-               atomic_set(&hdev->cmd_cnt, 1);
-               if (!skb_queue_empty(&hdev->cmd_q))
-                       tasklet_schedule(&hdev->cmd_task);
++      error = xfs_mountfs(mp);
++      if (error)
++              goto out_syncd_stop;
++
+       root = igrab(VFS_I(mp->m_rootip));
+       if (!root) {
+               error = ENOENT;
+@@ -1595,14 +1609,11 @@
+               goto fail_vnrele;
+       }
+-      error = xfs_syncd_init(mp);
+-      if (error)
+-              goto fail_vnrele;
+-
+-      xfs_inode_shrinker_register(mp);
+-
+       return 0;
++ out_syncd_stop:
++      xfs_inode_shrinker_unregister(mp);
++      xfs_syncd_stop(mp);
+  out_filestream_unmount:
+       xfs_filestream_unmount(mp);
+  out_free_sb:
+@@ -1626,6 +1637,9 @@
+       }
+  fail_unmount:
++      xfs_inode_shrinker_unregister(mp);
++      xfs_syncd_stop(mp);
++
+       /*
+        * Blow away any referenced inode in the filestreams cache.
+        * This can and will cause log traffic as inodes go inactive
index 22b7a980b75054868ad843a1ce53e5f99200d30f..07e0a854bdaf1185cf13e28570a0f009f58e4cd9 100644 (file)
@@ -87,7 +87,7 @@
 %endif
 
 %define                basever         2.6.38
-%define                postver         %{nil}
+%define                postver         .1
 %define                rel             0.1
 
 %define                _enable_debug_packages                  0
@@ -131,7 +131,7 @@ Source0:    http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{basever}.tar.bz2
 # Source0-md5: 7d471477bfa67546f902da62227fa976
 %if "%{postver}" != "%{nil}"
 Source1:       http://www.kernel.org/pub/linux/kernel/v2.6/patch-%{version}.bz2
-# Source1-md5: 5e5ad9a86f9a29cd2c1b8a171d89f9aa
+# Source1-md5: bd2be4d0465345e4e9355d6773f5f6fe
 %endif
 
 Source3:       kernel-autoconf.h
This page took 0.078026 seconds and 4 git commands to generate.